class OracleSqlParser::Grammar::ReservedWordGenerator

Public Class Methods

generate_grammer() click to toggle source
# File lib/oracle-sql-parser/grammar/reserved_word_generator.rb, line 4
def self.generate_grammer
  filename = ARGV[1] || File.expand_path("./reserved_word.treetop", File.dirname(__FILE__))
  File.open(filename, 'w') do |f|
    f.write self.generate_grammer_string(filename)
  end
end
generate_grammer_string(filename) click to toggle source
# File lib/oracle-sql-parser/grammar/reserved_word_generator.rb, line 62
      def self.generate_grammer_string(filename)
        header = <<EOS
#
# #{File.basename(filename)} generated by #{__FILE__} at #{Time.now}
#
module OracleSqlParser::Grammar
  grammar ReservedWord
EOS
        content = []

        footer = <<EOS
  end
end
EOS
        not_match_keyword = MatchKeyword.new 'keyword'
        self.keywords.each do |keyword|
          rule = KeywordRule.new(keyword)
          content << rule.to_s
          not_match_keyword << keyword
        end

        content.unshift not_match_keyword.to_s
        header + content.join("\n") + footer
      end
keywords() click to toggle source
# File lib/oracle-sql-parser/grammar/reserved_word_generator.rb, line 87
def self.keywords
  [
    'ACCESS',
    'ADD',
    'ALL',
    'ALTER',
    'AND',
    'ANY',
    'AS',
    'ASC',
    'AT',
    'AUDIT',
    'BETWEEN',
    'BY',
    'CASE',
    'CAST',
    'CHAR',
    'CHECK',
    'CLUSTER',
    'COLUMN',
    'COLUMN_VALUE',
    'COMMENT',
    'COMPRESS',
    'CONNECT',
    'CREATE',
    'CROSS',
    'CUBE',
    'CURRENT',
    'CURRENT_OF',
    'CURRVAL',
    'CURSOR',
    'DATE',
    'DAY',
    'DBTIMEZONE',
    'DECIMAL',
    'DEFAULT',
    'DELETE',
    'DESC',
    'DISTINCT',
    'DROP',
    'ELSE',
    'EMPTY',
    'END',
    'ESCAPE',
    'EXCLUSIVE',
    'EXISTS',
    'FETCH',
    'FILE',
    'FIRST',
    'FLOAT',
    'FOR',
    'FROM',
    'FULL',
    'GRANT',
    'GROUP',
    'HAVING',
    'IDENTIFIED',
    'IMMEDIATE',
    'IN',
    'INCREMENT',
    'INDEX',
    'INFINITE',
    'INITIAL',
    'INNER',
    'INSERT',
    'INTEGER',
    'INTERSECT',
    'INTO',
    'IS',
    'JOIN',
    'LAST',
    'LEFT',
    'LEVEL',
    'LIKE',
    'LIKE2',
    'LIKE4',
    'LIKEC',
    'LOCAL',
    'LOCK',
    'LONG',
    'MAXEXTENTS',
    'MEMBER',
    'MINUS',
    'MLSLABEL',
    'MODE',
    'MODIFY',
    'MONTH',
    'NAN',
    'NATURAL',
    'NESTED_TABLE_ID',
    'NEXT',
    'NEXTVAL',
    'NOAUDIT',
    'NOCOMPRESS',
    'NOT',
    'NOWAIT',
    'NULL',
    'NULLS',
    'NUMBER',
    'OF',
    'OFFLINE',
    'OFFSET',
    'ON',
    'ONLINE',
    'ONLY',
    'OPTION',
    'OR',
    'ORDER',
    'OUTER',
    'PCTFREE',
    'PERCENT',
    'PRIOR',
    'PRIVILEGES',
    'PUBLIC',
    'RAW',
    'REGEXP_LIKE',
    'RENAME',
    'RESOURCE',
    'REVOKE',
    'RIGHT',
    'ROLLUP',
    'ROW',
    'ROWID',
    'ROWNUM',
    'ROWS',
    'SECOND',
    'SELECT',
    'SESSION',
    'SESSIONTIMEZONE',
    'SET',
    'SHARE',
    'SIBLINGS',
    'SIZE',
    'SMALLINT',
    'START',
    'SUBMULTISET',
    'SUCCESSFUL',
    'SYNONYM',
    'SYSDATE',
    'SYSTIMESTAMP',
    'TABLE',
    'THEN',
    'TIES',
    'TIME',
    'TO',
    'TRIGGER',
    'TYPE',
    'UID',
    'UNION',
    'UNIQUE',
    'UPDATE',
    'USER',
    'USING',
    'VALIDATE',
    'VALUES',
    'VARCHAR',
    'VARCHAR2',
    'VIEW',
    'WAIT',
    'WHEN',
    'WHENEVER',
    'WHERE',
    'WITH',
    'YEAR',
    'ZONE',
  ]
end