all repos — min @ 483665b6c4fbb5dc1b2322812b66dda4a725d074

A small but practical concatenative programming language.

Removed unused "quotation" attribute in minOperator
h3rald h3rald@h3rald.com
Wed, 20 May 2026 15:11:09 +0200
commit

483665b6c4fbb5dc1b2322812b66dda4a725d074

parent

bfd3bbf749619672b6e0eac969e604c8b4a42209

3 files changed, 12 insertions(+), 16 deletions(-)

jump to
M minpkg/core/parser.nimminpkg/core/parser.nim

@@ -116,7 +116,6 @@ case kind*: MinOperatorKind

of minProcOp: prc*: MinOperatorProc of minValOp: - quotation*: bool val*: MinValue MinStack* = seq[MinValue] In* = var MinInterpreter
M minpkg/lib/min_global.nimminpkg/lib/min_global.nim

@@ -105,8 +105,7 @@ let json = MINSYMBOLS.readFile.parseJson

if not json.hasKey(sym): raiseUndefined("Symbol '$1' not found." % sym) let val = i.fromJson(json[sym]) - i.scope.symbols[sym] = MinOperator(kind: minValOp, val: val, - quotation: true) + i.scope.symbols[sym] = MinOperator(kind: minValOp, val: val) def.symbol("saved-symbols") do (i: In): var q = newSeq[MinValue](0)

@@ -351,11 +350,11 @@ var iv = inVals[k]

if iv.isQuotation: iv = @[iv].newVal i.scope.symbols[inVars[k]] = MinOperator(kind: minValOp, - sealed: false, val: iv, quotation: inVals[k].isQuotation) + sealed: false, val: iv) # Inject variables for mapped outputs for k in 0..outVars.len-1: i.scope.symbols[outVars[k]] = MinOperator(kind: minValOp, - sealed: false, val: @[newNull()].newVal, quotation: true) + sealed: false, val: @[newNull()].newVal) # Actually execute the body of the operator if DEV: var endSnapshot: seq[MinValue]

@@ -545,13 +544,14 @@ let vals = i.expect("'sym", "a")

let sym = vals[0] var q1 = vals[1] # existing (auto-quoted) var symbol: string + var isQuot = q1.isQuotation q1 = @[q1].newVal symbol = sym.getString if not symbol.contains re(USER_PATH_SYMBOL_REGEX): raiseInvalid("Symbol identifier '$1' contains invalid characters." % symbol) info "[define] $1 = $2" % [symbol, $q1] i.scope.setSymbol(symbol, MinOperator(kind: minValOp, val: q1, - sealed: false, quotation: q1.isQuotation), false, true) + sealed: false), false, true) def.symbol("typealias") do (i: In): let vals = i.expect("'sym", "'sym")

@@ -566,7 +566,7 @@ info "[typealias] $1 = $2" % [sym, s]

if i.scope.symbols.hasKey(symbol) and i.scope.symbols[symbol].sealed: raiseUndefined("Attempting to redefine sealed symbol '$1'" % [symbol]) i.scope.symbols[symbol] = MinOperator(kind: minValOp, val: s.newVal, - sealed: false, quotation: false) + sealed: false) def.symbol("lambda") do (i: In): let vals = i.expect("'sym", "quot")

@@ -580,7 +580,7 @@ info "[lambda] $1 = $2" % [symbol, $q1]

if i.scope.symbols.hasKey(symbol) and i.scope.symbols[symbol].sealed: raiseUndefined("Attempting to redefine sealed symbol '$1'" % [symbol]) i.scope.symbols[symbol] = MinOperator(kind: minValOp, val: q1, - sealed: false, quotation: true) + sealed: false) def.symbol("define-sigil") do (i: In): let vals = i.expect("'sym", "quot")

@@ -595,10 +595,9 @@ if i.scope.sigils.hasKey(symbol) and i.scope.sigils[symbol].sealed:

raiseUndefined("Attempting to redefine sealed sigil '$1'" % [symbol]) if i.scope.symbols.hasKey(symbol) and i.scope.symbols[symbol].sealed: raiseUndefined("Attempting to redefine sealed symbol '$1'" % [symbol]) - i.scope.sigils[symbol] = MinOperator(kind: minValOp, val: q1, sealed: false, - quotation: true) + i.scope.sigils[symbol] = MinOperator(kind: minValOp, val: q1, sealed: false) i.scope.symbols[symbol] = MinOperator(kind: minValOp, val: q1, - sealed: false, quotation: true) + sealed: false) def.symbol("bind") do (i: In): let vals = i.expect("'sym", "a")

@@ -609,8 +608,7 @@ var isQuot = q1.isQuotation

q1 = @[q1].newVal symbol = sym.getString info "[bind] $1 = $2" % [symbol, $q1] - let res = i.scope.setSymbol(symbol, MinOperator(kind: minValOp, val: q1, - quotation: isQuot)) + let res = i.scope.setSymbol(symbol, MinOperator(kind: minValOp, val: q1)) if not res: raiseUndefined("Attempting to bind undefined symbol: " & symbol)

@@ -621,8 +619,7 @@ var q1 = vals[1]

var symbol: string symbol = sym.getString info "[lambda-bind] $1 = $2" % [symbol, $q1] - let res = i.scope.setSymbol(symbol, MinOperator(kind: minValOp, val: q1, - quotation: true)) + let res = i.scope.setSymbol(symbol, MinOperator(kind: minValOp, val: q1)) if not res: raiseUndefined("Attempting to lambda-bind undefined symbol: " & symbol)
M minpkg/lib/min_xml.nimminpkg/lib/min_xml.nim

@@ -80,7 +80,7 @@

let def = i.define() i.scope.symbols["typealias:xml-node"] = MinOperator(kind: minValOp, - val: xmltypes.newVal, sealed: false, quotation: false) + val: xmltypes.newVal, sealed: false) def.symbol("from-xml") do (i: In): let vals = i.expect("str")