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 /chapter23 | |
| parent | 9149ea7a50c564856bd09633f38d980e8230c34f (diff) | |
| download | Simple-readme.tar.gz Simple-readme.zip | |
Slides for 2026 REBASEreadme
Diffstat (limited to 'chapter23')
| -rw-r--r-- | chapter23/src/main/java/com/seaofnodes/simple/Parser.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/chapter23/src/main/java/com/seaofnodes/simple/Parser.java b/chapter23/src/main/java/com/seaofnodes/simple/Parser.java index fa6568ab..4b7cca70 100644 --- a/chapter23/src/main/java/com/seaofnodes/simple/Parser.java +++ b/chapter23/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(com.seaofnodes.simple.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(com.seaofnodes.simple.sys.SYS); while( !_lexer.isEOF() ) { parseStatement(); _lexer.skipWhiteSpace(); @@ -1415,7 +1416,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() ) { @@ -1461,7 +1462,7 @@ public class Parser { st.setDef(0,ctrl); st = st.peephole(); mem(new MemMergeNode(prior,alias,st).peephole()); - prior.unkeep(); + prior.unkill(); } /** |
