diff --git a/ISBPL.java b/ISBPL.java index bc72ccf..44c68f5 100644 --- a/ISBPL.java +++ b/ISBPL.java @@ -252,6 +252,16 @@ public class ISBPL { ISBPL.gErrorStream.println("Constructing type " + type); return i.get(); }; + case "with": + return (idx, words, file, stack) -> { + idx++; + int i = 1; + for(; !words[idx].equals(";"); idx++, i++); + for(idx--; !words[idx].equals("with"); idx--) { + frameStack.get().peek().define(words[idx], stack.pop()); + } + return idx + i; + }; case "string!": return (idx, words, file, stack) -> { idx++;