cookeylang-ts
Version:
A dynamic, interpreted language.
85 lines (84 loc) • 2.35 kB
JavaScript
"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;