ton-assembly
Version:
TON assembler and disassembler
99 lines • 9.23 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.space = exports.comment = exports.singleLineComment = exports.reservedWord = exports.keyword = exports.StringLiteral = exports.digit = exports.binDigit = exports.hexDigit = exports.underscored = exports.IntegerLiteralOct = exports.IntegerLiteralBin = exports.IntegerLiteralHex = exports.IntegerLiteralDec = exports.IntegerLiteral = exports.BocLiteral = exports.BinLiteral = exports.HexLiteral = exports.DataLiteral = exports.Id = exports.idPart = exports.DefaultExotic = exports.ExoticLibrary = exports.DictionaryEntry = exports.Dictionary = exports.Code = exports.ControlRegister = exports.StackElement = exports.Argument = exports.instructions = exports.Exotic = exports.EmbedSlice = exports.ExplicitRef = exports.Instruction = exports.File = void 0;
/* Generated. Do not edit. */
/* eslint-disable @typescript-eslint/no-namespace */
/* eslint-disable @typescript-eslint/ban-types */
/* eslint-disable @typescript-eslint/no-redundant-type-constituents */
/* eslint-disable @typescript-eslint/no-duplicate-type-constituents */
/* eslint-disable @typescript-eslint/no-unused-vars */
const $ = __importStar(require("@tonstudio/parser-runtime"));
exports.File = $.loc($.field($.pure("File"), "$", $.field($.lazy(() => exports.instructions), "instructions", $.eps)));
exports.Instruction = $.loc($.field($.pure("Instruction"), "$", $.field($.lazy(() => exports.Id), "name", $.field($.star($.lazy(() => exports.Argument)), "args", $.eps))));
exports.ExplicitRef = $.loc($.field($.pure("ExplicitRef"), "$", $.right($.lazy(() => (0, exports.keyword)($.str("ref"))), $.field($.lazy(() => exports.Code), "code", $.eps))));
exports.EmbedSlice = $.loc($.field($.pure("EmbedSlice"), "$", $.right($.lazy(() => (0, exports.keyword)($.str("embed"))), $.field($.lazy(() => exports.DataLiteral), "data", $.eps))));
exports.Exotic = $.loc($.field($.pure("Exotic"), "$", $.right($.lazy(() => (0, exports.keyword)($.str("exotic"))), $.field($.alt($.lazy(() => exports.ExoticLibrary), $.lazy(() => exports.DefaultExotic)), "lib", $.eps))));
exports.instructions = $.star($.alt(exports.Instruction, $.alt(exports.ExplicitRef, $.alt(exports.EmbedSlice, exports.Exotic))));
exports.Argument = $.loc($.field($.pure("Argument"), "$", $.field($.alt($.lazy(() => exports.IntegerLiteral), $.alt($.lazy(() => exports.DataLiteral), $.alt($.lazy(() => exports.Code), $.alt($.lazy(() => exports.Dictionary), $.alt($.lazy(() => exports.StackElement), $.lazy(() => exports.ControlRegister)))))), "expression", $.eps)));
exports.StackElement = $.loc($.field($.pure("StackElement"), "$", $.field($.stry($.lex($.right($.str("s"), $.right($.opt($.str("-")), $.right($.lazy(() => exports.IntegerLiteralDec), $.eps))))), "value", $.eps)));
exports.ControlRegister = $.loc($.field($.pure("ControlRegister"), "$", $.field($.stry($.lex($.right($.str("c"), $.right($.lazy(() => exports.IntegerLiteralDec), $.eps)))), "value", $.eps)));
exports.Code = $.loc($.field($.pure("Code"), "$", $.right($.str("{"), $.field(exports.instructions, "instructions", $.right($.str("}"), $.eps)))));
exports.Dictionary = $.loc($.field($.pure("Dictionary"), "$", $.right($.str("["), $.field($.star($.lazy(() => exports.DictionaryEntry)), "entries", $.right($.str("]"), $.eps)))));
exports.DictionaryEntry = $.loc($.field($.pure("DictionaryEntry"), "$", $.field($.lazy(() => exports.IntegerLiteral), "id", $.right($.str("=>"), $.field(exports.Code, "code", $.eps)))));
exports.ExoticLibrary = $.loc($.field($.pure("ExoticLibrary"), "$", $.right($.lazy(() => (0, exports.keyword)($.str("library"))), $.field($.lazy(() => exports.DataLiteral), "data", $.eps))));
exports.DefaultExotic = $.loc($.field($.pure("DefaultExotic"), "$", $.field($.lazy(() => exports.DataLiteral), "data", $.eps)));
exports.idPart = $.named("identifier character", $.regex("a-zA-Z0-9_", [
$.ExpRange("a", "z"),
$.ExpRange("A", "Z"),
$.ExpRange("0", "9"),
$.ExpString("_"),
]));
exports.Id = $.named("identifier", $.loc($.field($.pure("Id"), "$", $.field($.lex($.stry($.right($.lookNeg($.lazy(() => exports.reservedWord)), $.right($.regex("a-zA-Z_", [
$.ExpRange("a", "z"),
$.ExpRange("A", "Z"),
$.ExpString("_"),
]), $.right($.star(exports.idPart), $.eps))))), "name", $.eps))));
exports.DataLiteral = $.loc($.field($.pure("DataLiteral"), "$", $.field($.alt($.lazy(() => exports.HexLiteral), $.alt($.lazy(() => exports.BinLiteral), $.alt($.lazy(() => exports.BocLiteral), $.lazy(() => exports.StringLiteral)))), "value", $.eps)));
exports.HexLiteral = $.loc($.field($.pure("HexLiteral"), "$", $.right($.str("x{"), $.field($.stry($.right($.star($.lazy(() => exports.hexDigit)), $.right($.opt($.str("_")), $.eps))), "content", $.right($.str("}"), $.eps)))));
exports.BinLiteral = $.loc($.field($.pure("BinLiteral"), "$", $.right($.str("b{"), $.field($.stry($.star($.lazy(() => exports.binDigit))), "content", $.right($.str("}"), $.eps)))));
exports.BocLiteral = $.loc($.field($.pure("BocLiteral"), "$", $.right($.str("boc{"), $.field($.stry($.star($.lazy(() => exports.hexDigit))), "content", $.right($.str("}"), $.eps)))));
exports.IntegerLiteral = $.loc($.field($.pure("IntegerLiteral"), "$", $.field($.opt($.str("-")), "op", $.field($.alt($.lazy(() => exports.IntegerLiteralHex), $.alt($.lazy(() => exports.IntegerLiteralBin), $.alt($.lazy(() => exports.IntegerLiteralOct), $.lazy(() => exports.IntegerLiteralDec)))), "value", $.eps))));
exports.IntegerLiteralDec = $.loc($.field($.pure("IntegerLiteralDec"), "$", $.field($.lex($.lazy(() => (0, exports.underscored)($.lazy(() => exports.digit)))), "digits", $.eps)));
exports.IntegerLiteralHex = $.loc($.field($.pure("IntegerLiteralHex"), "$", $.field($.lex($.stry($.right($.str("0"), $.right($.regex("xX", [$.ExpString("x"), $.ExpString("X")]), $.lazy(() => (0, exports.underscored)($.lazy(() => exports.hexDigit))))))), "digits", $.eps)));
exports.IntegerLiteralBin = $.loc($.field($.pure("IntegerLiteralBin"), "$", $.field($.lex($.stry($.right($.str("0"), $.right($.regex("bB", [$.ExpString("b"), $.ExpString("B")]), $.lazy(() => (0, exports.underscored)($.lazy(() => exports.binDigit))))))), "digits", $.eps)));
exports.IntegerLiteralOct = $.loc($.field($.pure("IntegerLiteralOct"), "$", $.field($.lex($.stry($.right($.str("0"), $.right($.regex("oO", [$.ExpString("o"), $.ExpString("O")]), $.lazy(() => (0, exports.underscored)($.regex("0-7", [$.ExpRange("0", "7")]))))))), "digits", $.eps)));
const underscored = (T) => $.stry($.right($.lazy(() => T), $.right($.star($.right($.opt($.str("_")), $.right($.lazy(() => T), $.eps))), $.eps)));
exports.underscored = underscored;
exports.hexDigit = $.named("hexadecimal digit", $.regex("0-9a-fA-F", [
$.ExpRange("0", "9"),
$.ExpRange("a", "f"),
$.ExpRange("A", "F"),
]));
exports.binDigit = $.named("binary digit", $.regex("01", [$.ExpString("0"), $.ExpString("1")]));
exports.digit = $.named("digit", $.regex("0-9", [$.ExpRange("0", "9")]));
exports.StringLiteral = $.loc($.field($.pure("StringLiteral"), "$", $.field($.lex($.right($.str('"'), $.left($.stry($.star($.regex('^"\\\\', $.negateExps([$.ExpString('"'), $.ExpString("\\")])))), $.str('"')))), "value", $.eps)));
const keyword = (T) => $.lex($.left($.lazy(() => T), $.lookNeg(exports.idPart)));
exports.keyword = keyword;
exports.reservedWord = $.named("reserved word", (0, exports.keyword)($.alt($.str("ref"), $.alt($.str("embed"), $.alt($.str("exotic"), $.str("library"))))));
exports.singleLineComment = $.right($.str("//"), $.stry($.star($.regex("^\\r\\n", $.negateExps([$.ExpString("\r"), $.ExpString("\n")])))));
exports.comment = exports.singleLineComment;
exports.space = $.named("space", $.alt($.regex(" \\t\\r\\n", [
$.ExpString(" "),
$.ExpString("\t"),
$.ExpString("\r"),
$.ExpString("\n"),
]), exports.comment));
//# sourceMappingURL=grammar.js.map