diff options
author | fche <fche> | 2005-03-02 01:28:50 +0000 |
---|---|---|
committer | fche <fche> | 2005-03-02 01:28:50 +0000 |
commit | 56099f083d7a68722ace316be4d288d21caabaee (patch) | |
tree | 3e67ec78134a358c1f90f701c165c4c577d62177 /parse.h | |
parent | 2f1a1aead38c1dcd329a694dd8d3290b37320466 (diff) | |
download | systemtap-steved-56099f083d7a68722ace316be4d288d21caabaee.tar.gz systemtap-steved-56099f083d7a68722ace316be4d288d21caabaee.tar.xz systemtap-steved-56099f083d7a68722ace316be4d288d21caabaee.zip |
* some semantic analysis
2005-03-01 Frank Ch. Eigler <fche@redhat.com>
* parse.cxx: Implement left-associativity for several types of
operators. Add some more statement types. Parse functions.
Be able to print tokens. Simplify error generating functions.
Save tokens in all parse tree nodes.
* parse.h: Corresponding changes.
* staptree.cxx: Move tree-printing functions here. Add many
new functions for symbol and type resolution.
* staptree.h: Corresponding changes.
* semtest.cxx: New semantic analysis pass & test driver.
* testsuite/sem*/*: New tests.
* parsetest.cxx: Separated parse test driver.
* testsuite/parse*/*: Adapt tests to parsetest driver.
* Makefile.am: Build semtest. Run its tests.
* Makefile.in: Regenerated.
* parse.cxx, parse.h: New files: parser.
Diffstat (limited to 'parse.h')
-rw-r--r-- | parse.h | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -29,6 +29,8 @@ struct token std::string content; }; +std::ostream& operator << (std::ostream& o, const token& t); + struct parse_error: public std::runtime_error { @@ -80,10 +82,13 @@ private: // nonterminals probe* parse_probe (); probe_point_spec* parse_probe_point_spec (); literal* parse_literal (); - symbol* parse_global (); + void parse_global (vector<vardecl*>&); + functiondecl* parse_functiondecl (); block* parse_stmt_block (); statement* parse_statement (); if_statement* parse_if_statement (); + return_statement* parse_return_statement (); + delete_statement* parse_delete_statement (); expression* parse_expression (); expression* parse_assignment (); expression* parse_ternary (); @@ -99,4 +104,5 @@ private: // nonterminals expression* parse_crement (); expression* parse_value (); expression* parse_symbol (); + symbol* parse_symbol_plain (); }; |