main.sa
Upload User: afrynkmhm
Upload Date: 2007-01-06
Package Size: 1262k
Code Size: 1k
Development Platform:

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  ::= #EXPR_LEXER{ANTLR_COMMON_TOKEN}( f );
  15.  parser ::= #EXPR_PARSER{ANTLR_COMMON_TOKEN,ANTLR_COMMON_AST}( lexer );
  16.  parser.expr;
  17.  
  18.  ast ::= parser.ast;
  19.  if ( ~void(ast) ) then
  20.     #OUT + ast.str_list + "n";
  21.  else
  22.     #OUT + "void $ANTLR_ASTn"
  23.  end;
  24.  
  25.       when $ANTLR_RECOGNITION_EXCEPTION then
  26.  #ERR + "exception: " + exception.str + "n";  
  27.       end;
  28.       
  29.    end;
  30. end;