UNPKG

cookeylang-ts

Version:
85 lines (84 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Grouping = exports.Variable = exports.Unary = exports.Call = exports.Binary = exports.Lambda = exports.Logic = exports.Assign = exports.Literal = void 0; const base_1 = require("./base"); class Literal extends base_1.Base { constructor(token, value) { super(token); this.value = value; } visit(visit) { return visit.Literal(this); } } exports.Literal = Literal; class Assign extends base_1.Base { constructor(name, value) { super(name); this.name = name; this.value = value; } visit(visit) { return visit.Assign(this); } } exports.Assign = Assign; class Logic extends base_1.Base { constructor(left, op, right) { super(op); this.left = left; this.op = op; this.right = right; } visit(visit) { return visit.Logic(this); } } exports.Logic = Logic; class Lambda extends base_1.Base { constructor(lineData, params, body) { super(lineData); this.params = params; this.body = body; } visit(visit) { return visit.Lambda(this); } } exports.Lambda = Lambda; class Binary extends base_1.Base { constructor(left, op, right) { super(op); this.left = left; this.op = op; this.right = right; } visit(visit) { return visit.Binary(this); } } exports.Binary = Binary; class Call extends base_1.Base { constructor(callee, paren, args) { super(paren); this.callee = callee; this.args = args; } visit(visit) { return visit.Call(this); } } exports.Call = Call; class Unary extends base_1.Base { constructor(op, right) { super(op); this.op = op; this.right = right; } visit(visit) { return visit.Unary(this); } } exports.Unary = Unary; class Variable extends base_1.Base { constructor(name) { super(name); this.name = name; } visit(visit) { return visit.Variable(this); } } exports.Variable = Variable; class Grouping extends base_1.Base { constructor(value) { super(value.lineData); this.value = value; } visit(visit) { return visit.Grouping(this); } } exports.Grouping = Grouping;