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 + -
显示快捷键?