main.sa
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. class MAIN is
  2.    main ( args : ARRAY{STR} ) is
  3.       if ( args.size < 2 ) then
  4.  #OUT + "usage " + args[0] + " <filename>n";
  5.  return;
  6.       end;
  7.  
  8.       f : IFSTREAM := IFSTREAM::open_for_read( args[1] );
  9.       if ( void(f) ) then
  10.  #OUT + "file "" + args[1] + "" not foundn";
  11.  return;
  12.       end;
  13.       protect
  14.  lexer  ::= #LANG_LEXER{ANTLR_COMMON_TOKEN}( f );
  15.  parser ::= #LANG_PARSER{ANTLR_COMMON_TOKEN,ANTLR_COMMON_AST}( lexer );
  16.  parser.block;
  17.  
  18.  t : ANTLR_COMMON_AST := parser.ast;
  19.  #OUT + t.str_list + "n";
  20.  
  21.  walker ::= #LANG_WALKER{ANTLR_COMMON_AST};
  22.  walker.block(t);
  23.  
  24.          #OUT + "done walkingn";
  25.  
  26.       when $ANTLR_EXCEPTION then
  27.  #ERR + "exception: " + exception.str + "n";  
  28.       end;
  29.       
  30.    end;
  31. end;