diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-04 13:30:41 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-04 13:30:41 -0700 |
| commit | a4994371c0b0fbea9d2802acc22d9cc3977a0de0 (patch) | |
| tree | 98fd05869028a931f5ec8cf503b5cdf6b6c52e87 /chapter24/src/main/java/com/seaofnodes/simple | |
| parent | 9149ea7a50c564856bd09633f38d980e8230c34f (diff) | |
| download | Simple-readme.tar.gz Simple-readme.zip | |
Slides for 2026 REBASEreadme
Diffstat (limited to 'chapter24/src/main/java/com/seaofnodes/simple')
| -rw-r--r-- | chapter24/src/main/java/com/seaofnodes/simple/Parser.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/chapter24/src/main/java/com/seaofnodes/simple/Parser.java b/chapter24/src/main/java/com/seaofnodes/simple/Parser.java index f362d062..f28d0871 100644 --- a/chapter24/src/main/java/com/seaofnodes/simple/Parser.java +++ b/chapter24/src/main/java/com/seaofnodes/simple/Parser.java @@ -132,6 +132,8 @@ public class Parser { private <N extends Node> N ctrl(N n) { return _scope.ctrl(n); } public void parse() { + // Graph callbacks during scope setup need a source position. + _lexer = new Lexer(sys.SYS); _scope.define(ScopeNode.CTRL, Type.CONTROL , false, null, _lexer); _scope.define(ScopeNode.MEM0, TypeMem.BOT , false, null, _lexer); @@ -141,7 +143,6 @@ public class Parser { _scope.mem(con(TypeMem.BOT)); // Parse the sys import - _lexer = new Lexer(sys.SYS); while( !_lexer.isEOF() ) { parseStatement(); _lexer.skipWhiteSpace(); @@ -1473,7 +1474,7 @@ public class Parser { mem(after.peephole()); out.unkeep(); nnn.unkeep(); - prior.unkeep(); + prior.unkill(); for( int i=0; i<fs.length; i++ ) { Node val = init.get(idx+i); if( !fs[i]._one && val._type != val._type.makeZero() ) { @@ -1519,7 +1520,7 @@ public class Parser { st.setDef(0,ctrl); st = st.peephole(); mem(new MemMergeNode(prior,alias,st).peephole()); - prior.unkeep(); + prior.unkill(); } /** |
