From d82e8ed2b065d0f95ba2e113d7abde81149d34ae Mon Sep 17 00:00:00 2001 From: nocturn9x Date: Sat, 27 Feb 2021 17:40:50 +0100 Subject: [PATCH] Added a comment for a future implementation of greater/less than comparisons and reverted old behavior --- __pycache__/build.cpython-39.pyc | Bin 0 -> 12274 bytes src/compiler.nim | 5 +++++ src/japl.nim | 10 +++++----- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 __pycache__/build.cpython-39.pyc diff --git a/__pycache__/build.cpython-39.pyc b/__pycache__/build.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..056976e518a081eba084037be1eb0e8a325c3418 GIT binary patch literal 12274 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 Y`bFau<2IODrujb;$zFJp@C^0;0eN>w0RR91 literal 0 HcmV?d00001 diff --git a/src/compiler.nim b/src/compiler.nim index 20727fc..9164147 100644 --- a/src/compiler.nim +++ b/src/compiler.nim @@ -310,6 +310,11 @@ proc binary(self: Compiler, canAssign: bool) = of TokenType.DEQ: self.emitByte(OpCode.Equal) of TokenType.GT: + # To allow for chaining of greater/less comparisons in the future (without doing + # weird stuff such as allowing false with the greater/less than operators) + # we need to move their logic in another function. This will + # also allow for a sort of short-circuiting control flow like + # for logical ands and ors, because why not? self.emitByte(OpCode.Greater) of TokenType.GE: self.emitByte(OpCode.GreaterOrEqual) diff --git a/src/japl.nim b/src/japl.nim index 0f6c846..0e17c00 100644 --- a/src/japl.nim +++ b/src/japl.nim @@ -31,12 +31,14 @@ import jale/plugin/defaults import jale/plugin/history import jale/plugin/editor_history + proc getLineEditor: LineEditor = result = newLineEditor() result.prompt = "=> " - result.populateDefaults() # setup default keybindings - let hist = result.plugHistory() # create history object - result.bindHistory(hist) # set default history keybindings + result.populateDefaults() # setup default keybindings + let hist = result.plugHistory() # create history object + result.bindHistory(hist) # set default history keybindings + proc repl(bytecodeVM: VM) = var bytecodeVM = bytecodeVM @@ -58,8 +60,6 @@ proc repl(bytecodeVM: VM) = continue elif source == "//exit" or source == "// exit": echo "Goodbye!" - echo JAPL_VERSION_STRING - echo nimDetails break elif source != "": discard bytecodeVM.interpret(source, "stdin")