module OracleSqlParser::Grammar
grammar Expression include OracleSqlParser::Grammar::Expression::Compound include OracleSqlParser::Grammar::Expression::Function include OracleSqlParser::Grammar::Expression::Case include OracleSqlParser::Grammar::Expression::Simple include OracleSqlParser::Grammar::Expression::Cursor include OracleSqlParser::Grammar::Expression::Datetime include OracleSqlParser::Grammar::Expression::Interval rule sql_expression ex:( interval_expression / compound_expression / function_expression / case_expression / cursor_expression / datetime_expression / object_access_expression / scalar_subquery_expression / model_expression / type_constructor_expression / simple_expression / variable_expression / column_expression / json_object_access_expression / object_access_expression ) { def ast ex.ast end } end rule not_loop_sql_expression ex:( function_expression / case_expression / cursor_expression / object_access_expression / scalar_subquery_expression / model_expression / type_constructor_expression / simple_expression / variable_expression) { def ast ex.ast end } end rule object_access_expression 'object_access_expression' # not implemented end rule scalar_subquery_expression 'scalar_subquery_expression' # not implemented end rule model_expression 'model_expression' # not implemented end rule type_constructor_expression 'type_constructor_expression' # not implemented end rule variable_expression 'variable_expression' # not implemented end rule column_expression 'column_expression' # not implemented end rule json_object_access_expression 'json_object_access_expression' # not implemented end rule expression_list # from grouping_expression_list ( '(' e:exprs ')' / e:exprs ) { def ast e.ast end } end rule exprs expr more:(space? ',' space? more_expr:expr)* { def ast OracleSqlParser::Ast::Array[expr.ast, *more_exprs.map(&:ast)] end def more_exprs more.elements.map{|e| e.more_expr} end } end rule expr sql_expression { def ast super end } end end
end