diff options
author | fche <fche> | 2005-06-08 22:02:09 +0000 |
---|---|---|
committer | fche <fche> | 2005-06-08 22:02:09 +0000 |
commit | bb2e3076ea20631d4606050550bc9664204f2c62 (patch) | |
tree | ef9cfb841ddb001c1f3aa266523f1ff6f56b21b5 /parse.h | |
parent | 22f4623195facb4cbc1b50c45c0bd689f6958a9d (diff) | |
download | systemtap-steved-bb2e3076ea20631d4606050550bc9664204f2c62.tar.gz systemtap-steved-bb2e3076ea20631d4606050550bc9664204f2c62.tar.xz systemtap-steved-bb2e3076ea20631d4606050550bc9664204f2c62.zip |
2005-06-08 Frank Ch. Eigler <fche@redhat.com>
systemtap/916
Implement all basic scalar operators, including modify-assignment.
* parse.cxx (lexer): Allow multi-character lookahead in order to
scan 1/2/3-character operators.
(parse_boolean_or/and/xor/shift): New routines.
* translate.cxx (visit_assignment, visit_binary_expression,
visit_*_crement): Generally rewrote.
(visit_*): Added more parentheses in output.
(emit_module_init): Initialize globals.
* staptree.h, elaborate.cxx, elaborate.h: Remove exponentiation.
* main.cxx (main): Add an end-of-line to output file.
* testsuite/*: Several new tests.
Diffstat (limited to 'parse.h')
-rw-r--r-- | parse.h | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -57,8 +57,10 @@ public: private: int input_get (); + int input_peek (unsigned n=0); std::istream& input; std::string input_name; + std::vector<int> lookahead; unsigned cursor_line; unsigned cursor_column; }; @@ -115,13 +117,16 @@ private: // nonterminals expression* parse_ternary (); expression* parse_logical_or (); expression* parse_logical_and (); + expression* parse_boolean_or (); + expression* parse_boolean_xor (); + expression* parse_boolean_and (); expression* parse_array_in (); expression* parse_comparison (); + expression* parse_shift (); expression* parse_concatenation (); expression* parse_additive (); expression* parse_multiplicative (); expression* parse_unary (); - expression* parse_exponentiation (); expression* parse_crement (); expression* parse_value (); expression* parse_symbol (); |