diff --git a/lang/lua-ast.lua b/lang/lua-ast.lua index 6f4c7a2..db4f79c 100644 --- a/lang/lua-ast.lua +++ b/lang/lua-ast.lua @@ -9,6 +9,26 @@ local function ident(name, line) return build("Identifier", { name = name, line = line }) end +local function literal(value, line) + return build("Literal", { value = value, line = line }) +end + +local function field(obj, name, line) + return build("MemberExpression", { object = obj, property = ident(name), computed = false, line = line }) +end + +local function logical_binop(op, left, right, line) + return build("LogicalExpression", { operator = op, left = left, right = right, line = line }) +end + +local function binop(op, left, right, line) + return build("BinaryExpression", { operator = op, left = left, right = right, line = line }) +end + +local function empty_table(line) + return build("Table", { keyvals = { }, line = line }) +end + local function does_multi_return(expr) local k = expr.kind return k == "CallExpression" or k == "SendExpression" or k == "Vararg"