UNPKG

@composita/compiler

Version:

Composita language compiler.

295 lines 8.09 kB
export var Tag; (function (Tag) { Tag["EOT"] = "EOT"; Tag["Begin"] = "BEGIN"; Tag["Activity"] = "ACTIVITY"; Tag["Finally"] = "FINALLY"; Tag["End"] = "END"; Tag["Constant"] = "CONSTANT"; Tag["Variable"] = "VARIABLE"; Tag["In"] = "IN"; Tag["Out"] = "OUT"; Tag["Is"] = "IS"; Tag["Type"] = "TYPE"; Tag["Any"] = "ANY"; Tag["Finish"] = "FINISH"; Tag["Component"] = "COMPONENT"; Tag["Interface"] = "INTERFACE"; Tag["Procedure"] = "PROCEDURE"; Tag["Implementation"] = "IMPLEMENTATION"; Tag["Offers"] = "OFFERS"; Tag["Requires"] = "REQUIRES"; Tag["OpenBrace"] = "{"; Tag["CloseBrace"] = "}"; Tag["OpenSquareBracket"] = "["; Tag["CloseSquareBracket"] = "]"; Tag["OpenParentheses"] = "("; Tag["CloseParentheses"] = ")"; Tag["Semicolon"] = ";"; Tag["Colon"] = ":"; Tag["Comma"] = ","; Tag["Asterisk"] = "*"; Tag["Pipe"] = "|"; Tag["For"] = "FOR"; Tag["To"] = "TO"; Tag["By"] = "BY"; Tag["Do"] = "DO"; Tag["Foreach"] = "FOREACH"; Tag["Of"] = "OF"; Tag["While"] = "WHILE"; Tag["Repeat"] = "REPEAT"; Tag["Until"] = "UNTIL"; Tag["If"] = "IF"; Tag["Then"] = "THEN"; Tag["Elsif"] = "ELSIF"; Tag["Else"] = "ELSE"; Tag["Return"] = "RETURN"; Tag["NumberSign"] = "#"; Tag["Equal"] = "="; Tag["Less"] = "<"; Tag["LessEqual"] = "<="; Tag["Greater"] = ">"; Tag["GreaterEqual"] = ">="; Tag["ColonEqual"] = ":="; Tag["Ellipsis"] = ".."; Tag["Plus"] = "+"; Tag["Minus"] = "-"; Tag["Tilde"] = "~"; Tag["Slash"] = "/"; Tag["Div"] = "DIV"; Tag["Mod"] = "MOD"; Tag["And"] = "AND"; Tag["Or"] = "OR"; Tag["ExclamationMark"] = "!"; Tag["QuestionMark"] = "?"; })(Tag || (Tag = {})); export function tagFromString(identifier) { switch (identifier) { case Tag.Begin: return Tag.Begin; case Tag.Activity: return Tag.Activity; case Tag.Finally: return Tag.Finally; case Tag.End: return Tag.End; case Tag.Constant: return Tag.Constant; case Tag.Variable: return Tag.Variable; case Tag.In: return Tag.In; case Tag.Out: return Tag.Out; case Tag.Is: return Tag.Is; case Tag.Type: return Tag.Type; case Tag.Any: return Tag.Any; case Tag.Finish: return Tag.Finish; case Tag.Component: return Tag.Component; case Tag.Interface: return Tag.Interface; case Tag.Procedure: return Tag.Procedure; case Tag.Implementation: return Tag.Implementation; case Tag.Offers: return Tag.Offers; case Tag.Requires: return Tag.Requires; case Tag.OpenBrace: return Tag.OpenBrace; case Tag.CloseBrace: return Tag.CloseBrace; case Tag.OpenSquareBracket: return Tag.OpenSquareBracket; case Tag.CloseSquareBracket: return Tag.CloseSquareBracket; case Tag.OpenParentheses: return Tag.OpenParentheses; case Tag.CloseParentheses: return Tag.CloseParentheses; case Tag.Semicolon: return Tag.Semicolon; case Tag.Colon: return Tag.Colon; case Tag.Comma: return Tag.Comma; case Tag.Asterisk: return Tag.Asterisk; case Tag.Pipe: return Tag.Pipe; case Tag.For: return Tag.For; case Tag.To: return Tag.To; case Tag.By: return Tag.By; case Tag.Do: return Tag.Do; case Tag.Foreach: return Tag.Foreach; case Tag.Of: return Tag.Of; case Tag.While: return Tag.While; case Tag.Repeat: return Tag.Repeat; case Tag.Until: return Tag.Until; case Tag.If: return Tag.If; case Tag.Then: return Tag.Then; case Tag.Elsif: return Tag.Elsif; case Tag.Else: return Tag.Else; case Tag.Return: return Tag.Return; case Tag.NumberSign: return Tag.NumberSign; case Tag.Equal: return Tag.Equal; case Tag.Less: return Tag.Less; case Tag.LessEqual: return Tag.LessEqual; case Tag.Greater: return Tag.Greater; case Tag.GreaterEqual: return Tag.GreaterEqual; case Tag.ColonEqual: return Tag.ColonEqual; case Tag.Ellipsis: return Tag.Ellipsis; case Tag.Plus: return Tag.Plus; case Tag.Minus: return Tag.Minus; case Tag.Tilde: return Tag.Tilde; case Tag.Slash: return Tag.Slash; case Tag.Div: return Tag.Div; case Tag.Mod: return Tag.Mod; case Tag.And: return Tag.And; case Tag.Or: return Tag.Or; case Tag.ExclamationMark: return Tag.ExclamationMark; case Tag.QuestionMark: return Tag.QuestionMark; default: return undefined; } } export class Token { constructor(location) { this.location = location; } getLocation() { return this.location; } } export class UnknownCharacterToken extends Token { constructor(location, character) { super(location); this.character = character; } getCharacter() { return this.character; } } var ErrorTokenTag; (function (ErrorTokenTag) { ErrorTokenTag[ErrorTokenTag["Tag"] = 0] = "Tag"; })(ErrorTokenTag || (ErrorTokenTag = {})); export class ErrorToken extends Token { constructor(location) { super(location); this._errorTag = ErrorTokenTag.Tag; } } export class FixToken extends Token { constructor(location, tag) { super(location); this.tag = tag; } getTag() { return this.tag; } } export class IdentifierToken extends Token { constructor(location, identifier) { super(location); this.identifier = identifier; } getIdentifier() { return this.identifier; } } export class NumberToken extends Token { constructor(location, value) { super(location); this.value = value; } getNumber() { return this.value; } } var HexNumberTokenTag; (function (HexNumberTokenTag) { HexNumberTokenTag[HexNumberTokenTag["Tag"] = 0] = "Tag"; })(HexNumberTokenTag || (HexNumberTokenTag = {})); export class HexNumberToken extends NumberToken { constructor() { super(...arguments); this._tag = HexNumberTokenTag.Tag; } } var IntegerNumberTokenTag; (function (IntegerNumberTokenTag) { IntegerNumberTokenTag[IntegerNumberTokenTag["Tag"] = 0] = "Tag"; })(IntegerNumberTokenTag || (IntegerNumberTokenTag = {})); export class IntegerNumberToken extends NumberToken { constructor() { super(...arguments); this._tag = IntegerNumberTokenTag.Tag; } } var FloatNumberTokenTag; (function (FloatNumberTokenTag) { FloatNumberTokenTag[FloatNumberTokenTag["Tag"] = 0] = "Tag"; })(FloatNumberTokenTag || (FloatNumberTokenTag = {})); export class FloatNumberToken extends NumberToken { constructor(location, mantissa, exponent) { super(location, mantissa * 10 ** exponent); this.mantissa = mantissa; this.exponent = exponent; this._tag = FloatNumberTokenTag.Tag; } getMantissa() { return this.mantissa; } getExponent() { return this.exponent; } } export class TextToken extends Token { constructor(location, text) { super(location); this.text = text; } getText() { return this.text; } } //# sourceMappingURL=tokens.js.map