mirror of
https://github.com/Reuh/anselme.git
synced 2025-10-27 16:49:31 +00:00
24 lines
704 B
Lua
24 lines
704 B
Lua
local infix = require("parser.expression.secondary.infix.infix")
|
|
local escape = require("common").escape
|
|
|
|
local operator_priority = require("common").operator_priority
|
|
|
|
local ast = require("ast")
|
|
local Call = ast.Call
|
|
|
|
return infix {
|
|
operator = "=",
|
|
identifier = "_=_",
|
|
priority = operator_priority["_=_"],
|
|
|
|
-- return bool
|
|
match = function(self, str, current_priority, primary)
|
|
local escaped = escape(self.operator)
|
|
return self.priority > current_priority and str:match("^"..escaped) and Call:is(primary)
|
|
end,
|
|
|
|
build_ast = function(self, left, right)
|
|
left.arguments:add_assignment(right)
|
|
return Call:new(left.func, left.arguments) -- recreate Call since we modified left.arguments
|
|
end,
|
|
}
|