main.sa
来自「Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。」· SA 代码 · 共 41 行
SA
41 行
class MAIN is main ( args : ARRAY{STR} ) is if ( args.size < 2 ) then #OUT + "usage " + args[0] + " <filename>\n"; return; end; f : IFSTREAM := IFSTREAM::open_for_read( args[1] ); if ( void(f) ) then #OUT + "file \"" + args[1] + "\" not found\n"; return; end; protect lexer ::= #CALC_LEXER{ANTLR_COMMON_TOKEN}( f ); lexer.file_name( args[1] ); parser ::= #CALC_PARSER{ANTLR_COMMON_TOKEN, ANTLR_COMMON_AST}( lexer ); parser.file_name( args[1] ); parser.expr; t : ANTLR_COMMON_AST := parser.ast; #OUT + t.str_tree + "\n"; walker ::= #CALC_TREE_WALKER{ANTLR_COMMON_AST}; r : FLT := walker.expr(t); #OUT + "value is " + r + "\n"; when $ANTLR_RECOGNITION_EXCEPTION then #ERR + "exception: " + exception.str + "\n"; end; end;end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?