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

编译器/解释器

开发平台:

Others

  1. (* 
  2.   ANTLR Translator Generator
  3.   Project led by Terence Parr at http://www.jGuru.com
  4.   Software rights: http://www.antlr.org/RIGHTS.html
  5.  
  6.   $Id: //depot/code/org.antlr/release/antlr-2.7.0/lib/sather/Antlr/ast.sa#1 $
  7. *)
  8. abstract class $ANTLR_AST{ AST < $ANTLR_AST{AST} } is
  9.    equals( t : AST ) : BOOL;
  10.    equals_list( t : AST ) : BOOL ;
  11.    equals_list_partial( t : AST ) : BOOL; 
  12.    equals_tree( t : AST) : BOOL ;
  13.    equals_tree_partial( t : AST ) : BOOL;
  14.    find_all( tree : AST ) : ARRAY{AST};
  15.    find_all_partial( subtree : AST ) : ARRAY{AST};
  16.    
  17.    dup : AST;
  18.    create( t : INT, txt : STR ) : AST;
  19.    create_from_ast( t : AST ) : AST;
  20.    create_from_token( t : $ANTLR_TOKEN ) : AST;
  21.    
  22.    -- add a (rightmost child to this node
  23.    add_child( c : AST );
  24.    
  25.    -- Get the first child of this node; null if no children
  26.    first_child : AST;
  27.    -- Set the first child of a node.
  28.    first_child( c : AST );
  29.    -- Get the next sibling in line after this one
  30.    next_sibling : AST;
  31.    -- Set the next sibling after this one.
  32.    next_sibling( n : AST );
  33.    -- Get the token text for this node
  34.    text : STR;
  35.    -- Set the token text for this node
  36.    text( text : STR );
  37.    -- Get the token type for this node
  38.    ttype : INT;
  39.    -- Set the token type for this node
  40.    ttype( ttype : INT );
  41.    str : STR;
  42.    str_list : STR;
  43.    str_tree : STR;
  44. end;