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  ::= #CALC_LEXER{ANTLR_COMMON_TOKEN}( f );
  15.  parser ::= #CALC_PARSER{ANTLR_COMMON_TOKEN, $CALC_AST}( lexer );
  16.  parser.expr;
  17.  
  18.  t : $CALC_AST := parser.ast;
  19.  #OUT + t.str_tree + "n";
  20.  
  21.  #OUT + "value is " + t.val + "n";
  22.       when $ANTLR_RECOGNITION_EXCEPTION then
  23.  #ERR + "exception: " + exception.str + "n";  
  24.       end;
  25.       
  26.    end;
  27. end;