diff options
author | Adrian Kummerlaender | 2014-10-02 19:59:48 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2014-10-02 19:59:48 +0200 |
commit | ab3a0312247f1467cd1eee81f6b1d22b499a8715 (patch) | |
tree | 875815935a92f75714dd301286c5dc35a30bfd96 /main.cc | |
parent | 0840f434541b57fbd6d3c9d7b2a8b127cc680912 (diff) | |
download | SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.tar SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.tar.gz SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.tar.bz2 SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.tar.lz SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.tar.xz SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.tar.zst SimpleParser-ab3a0312247f1467cd1eee81f6b1d22b499a8715.zip |
Moved exception based syntax check into buildTree
* invalid expressions typically cause the operator and operand stacks to become unbalanced
** this in turn causes a operator_exception instance to be thrown as soon as the shunting yard implementation in "buildTree" tries to modify the stack _too far_
** this is not directly visible from the tree construction implementation
* the compilation unit local helper methods "pop" and "top" now return "boost::optional<Node*>" instances
** this enables the operator placement errors to be handled where they occur
* as a side effect children assignment is now more obvious through correctly named variables
* added missing default initialization in lexer implementation
Diffstat (limited to 'main.cc')
0 files changed, 0 insertions, 0 deletions