code: function(namespace, schema) {
    /** @private {!lf.schema.Database} */
    this.schema_ = schema;
  
    /** @private {string} */
    this.namespace_ = namespace;
  
    /** @private {?string} */
    this.fileName_ = null;
  
    /**
     * A stack used to store relative line numbers.
     * @private {!Array<number>}
     */
    this.stack_ = [];
  
    /** @private {number} */
    this.tableIndex_ = -1;
  }
docs: @fileoverview Code generator for given templates. The class reads the schema
  and generates following variables:
  
  #bundledmode: enableBundledMode pragma value, default to false
  #column: array of columns of last used #table, must be used in #repeatcolumn
  #columnuniqueness: uniqueness of last used #column
  #columnnullable: nullability of last used #column
  #dbname: database name
  #dbtablelist: database table list
  #dbversion: database version
  #keyofindex: function body of a row's keyOfIndex function
  #namespace: namespace given by the user
  #table: array of tables defined in schema, must be used in #repeattable
  #tablecolumntypes: column as members with type annotation
  #tablecolumndbtypes: column as members with type annotation
  #tablename: table name of last used #table
  #tablepersistentindex: table pragma persistIndex
  
  The caller feeds in the content of a template in string form, and the
  generator will replace the variables in the template and return the results
  as string. The template can have following control variables:
  
  #pascal: used for #{table|column} to generate Pascal-Camel-style string
  #camel: used for #{table|column} to generate Camel-style string
  /// #sort: sort the coming block in lexical order
  /// #repeattable: repeat given statements by table
  /// #repeatcolumn: repeat given statements by column
   
  @param {string} namespace
  @param {!lf.schema.Database} schema Validated DB schema
  @constructor