main.sa
来自「Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。」· SA 代码 · 共 48 行
SA
48 行
class MAIN is shared filter : ANTLR_TOKEN_STREAM_HIDDEN_TOKEN_FILTER; 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; lexer ::= #INSTR_LEXER{ANTLR_COMMON_HIDDEN_STREAM_TOKEN}( f ); filter ::= #ANTLR_TOKEN_STREAM_HIDDEN_TOKEN_FILTER( lexer ); if ( void( filter ) ) then #OUT + "created void\n"; end; parser ::= #INSTR_PARSER{ANTLR_COMMON_HIDDEN_STREAM_TOKEN, ANTLR_COMMON_AST_WITH_HIDDEN_TOKENS}( filter ); filter.hide( parser.WS ); filter.hide( parser.SL_COMMENT ); protect parser.slist; when $STR then #ERR + "error: " + exception.str; end; t : ANTLR_COMMON_AST_WITH_HIDDEN_TOKENS := parser.ast; walker ::= #INSTR_TREE_WALKER{ANTLR_COMMON_AST_WITH_HIDDEN_TOKENS}( filter ); protect walker.slist(t); when $STR then #ERR + "error: " + exception.str; end; end;end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?