summaryrefslogtreecommitdiff
path: root/chapter05/src/test/java
Commit message (Collapse)AuthorAgeFilesLines
* Fix div-by-0, some javadocCliff Click2023-11-011-7/+8
| | | | | higher level parsers can return null, but their return is ignored anycase. div-by-0 is defined to be 0, backported to ch2,3,4,5
* Fix missing trailing expressionCliff Click2023-11-011-0/+10
|
* Fix broken error reportCliff Click2023-11-011-1/+10
|
* Fix bugs using keywords as idsCliff Click2023-11-011-1/+30
| | | | | | | | Add an exact 'matchx' for keywords. Add a list of keywords. int true=0; return true; // Expected id, found 'true' int else=arg; if(else) else=2; else else=1; return else; // Expected id, found 'else' inta=1; return a; // undefined inta
* Update READMECliff Click2023-11-011-1/+14
| | | | Add true/false
* Parser gather Returns in the StopCliff Click2023-11-011-43/+52
| | | | | | Return returns a tuple of control & result GraphViz works with multi-Scopes and Scopes do not double-print uid. Proj also does not print uid in golden test results, because every time we add a new early node, the final results change node id so fail golden test.
* Fix Scope.dup mixing up edge ordersCliff Click2023-11-011-1/+16
| | | | Fix GraphVix node edge ordering
* Greatly simplify Merge logic; move to ScopeNode.Cliff Click2023-11-011-47/+88
| | | | | | | | | Rename CTRL_TOKEN... its not a token. _allScopes becomes a Stack, because... it behaves like a stack. Add a junk Phi peep. More general AddNode peeps Add a bunch of If tests. Rewrite how expected-exception tests work; the workflow on the old technique sucked. New one stops in the right place in the debugger.
* Update visualization to show all the Scope Nodes that are active.dibyendumajumdar2023-11-011-9/+20
| | | | | | Fix test cases broken due to renaming of ProjNode label. Cleanup the way we update $ctrl token Assign an ID to each ScopeNode so that when we visualize we can assign different names
* Some initial Ch 5 cleanupCliff Click2023-11-011-1/+1
| | | | | | Drop Control interface, not flexible enough. Use isCFG() call, overloaded in child classes. Projections have a more complex test. Missing some printouts in Bool children, If, Region, Phi. IfNode type is a tuple. Region is TypeControl.
* Added PhiNode, RegionNode, IfNode, StopNodedibyendumajumdar2023-11-011-0/+7
| | | | | No type compute yet Initial parsing logic for If statements
* Rename test class and dot diagramsdibyendumajumdar2023-11-011-1/+1
|
* Start on Chapter 5dibyendumajumdar2023-11-011-0/+273