Parser
Defined in: .work/repos/tabscript/src/parser.ts:61
TabScript parser implementing recursive descent parsing.
All parse* methods follow a contract:
- Return truthy on success, falsy on failure
- On failure, leave the state unchanged
Plugins can modify parse* methods directly on the Parser instance.
Properties
Section titled “Properties”options
Section titled “options”options:
Options
Defined in: .work/repos/tabscript/src/parser.ts:62
Methods
Section titled “Methods”pattern()
Section titled “pattern()”pattern(
regexp,name):RegExp
Defined in: .work/repos/tabscript/src/parser.ts:76
Creates a token matcher regex with a descriptive name for error messages. Automatically adds the sticky (/y) flag if not present.
This is the recommended way to create regex patterns for use with
s.read(), s.accept(), s.peek(), and related methods in plugins.
Parameters
Section titled “Parameters”regexp
Section titled “regexp”RegExp
The regular expression pattern to match tokens
string
A descriptive name shown in error messages (e.g., “identifier”, “number”)
Returns
Section titled “Returns”RegExp
A new RegExp with the sticky flag and custom toString()
parseFuncParams()
Section titled “parseFuncParams()”parseFuncParams(
s,isConstructor?,parenthesis?):string|boolean
Defined in: .work/repos/tabscript/src/parser.ts:84
Parse function parameters.
Parameters
Section titled “Parameters”isConstructor?
Section titled “isConstructor?”boolean = false
parenthesis?
Section titled “parenthesis?”boolean = false
Returns
Section titled “Returns”string | boolean
Example
Section titled “Example”`|a, b: number, c = 3|` or `(a, b: number, c = 3)`parseFunction()
Section titled “parseFunction()”parseFunction(
s,declaration?):boolean
Defined in: .work/repos/tabscript/src/parser.ts:113
Parse a function definition.
Parameters
Section titled “Parameters”declaration?
Section titled “declaration?”boolean = false
Returns
Section titled “Returns”boolean
Example
Section titled “Example”`|x| x * 2` or `async |x| await fetch(x)` or `function foo|x| x * 2`parseVarDecl()
Section titled “parseVarDecl()”parseVarDecl(
s,allowInit?):boolean
Defined in: .work/repos/tabscript/src/parser.ts:157
Parse a variable declaration.
Parameters
Section titled “Parameters”allowInit?
Section titled “allowInit?”boolean = true
Returns
Section titled “Returns”boolean
Example
Section titled “Example”`x := 5` (const) or `x ::= 5` (let) or `x: number := 5` (with type)parseExpression()
Section titled “parseExpression()”parseExpression(
s,withinTag?):boolean
Defined in: .work/repos/tabscript/src/parser.ts:176
Parse an expression.
Parameters
Section titled “Parameters”withinTag?
Section titled “withinTag?”boolean = false
Returns
Section titled “Returns”boolean
Example
Section titled “Example”`x + 1` or `foo(bar)` or `obj.method.. arg1 arg2`parseType()
Section titled “parseType()”parseType(
s,allowFunction?):boolean
Defined in: .work/repos/tabscript/src/parser.ts:251
Parse a type annotation.
Parameters
Section titled “Parameters”allowFunction?
Section titled “allowFunction?”boolean = true
Returns
Section titled “Returns”boolean
Example
Section titled “Example”`number` or `string[]` or `{x: number, y: string}` or `Foo<Bar>`parseMethod()
Section titled “parseMethod()”parseMethod(
s,typeOnly?,isDerived?):boolean
Defined in: .work/repos/tabscript/src/parser.ts:309
Parse a class method or property.
Parameters
Section titled “Parameters”typeOnly?
Section titled “typeOnly?”boolean = false
isDerived?
Section titled “isDerived?”boolean = false
Returns
Section titled “Returns”boolean
Example
Section titled “Example”`myMethod|x| x * 2` or `static count := 0` or `get name|| this._name`parseClass()
Section titled “parseClass()”parseClass(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:391
Parse a class or interface definition.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
Example
Section titled “Example”`class Foo extends Bar` or `interface IFoo` or `abstract class Base`parseMain()
Section titled “parseMain()”parseMain(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:424
Parse the main entry point - processes header and all statements.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseHeader()
Section titled “parseHeader()”parseHeader(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:442
Parse the TabScript header line. Header format: tabscript X.Y
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseStatement()
Section titled “parseStatement()”parseStatement(
s):string|boolean
Defined in: .work/repos/tabscript/src/parser.ts:467
Parse a single statement.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”string | boolean
Example
Section titled “Example”`x := 5` or `if condition` or `for item: of items` or `return value`parseExport()
Section titled “parseExport()”parseExport(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:484
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseTypeDecl()
Section titled “parseTypeDecl()”parseTypeDecl(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:507
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseEnum()
Section titled “parseEnum()”parseEnum(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:515
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseReturn()
Section titled “parseReturn()”parseReturn(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:541
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseIfWhile()
Section titled “parseIfWhile()”parseIfWhile(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:547
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseThrow()
Section titled “parseThrow()”parseThrow(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:558
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseDoWhile()
Section titled “parseDoWhile()”parseDoWhile(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:564
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseFor()
Section titled “parseFor()”parseFor(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:572
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseSwitch()
Section titled “parseSwitch()”parseSwitch(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:595
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseImport()
Section titled “parseImport()”parseImport(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:623
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseTry()
Section titled “parseTry()”parseTry(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:686
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseDeclare()
Section titled “parseDeclare()”parseDeclare(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:725
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseBlock()
Section titled “parseBlock()”parseBlock(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:736
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseTemplateDef()
Section titled “parseTemplateDef()”parseTemplateDef(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:740
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseClassicFuncExprBody()
Section titled “parseClassicFuncExprBody()”parseClassicFuncExprBody(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:753
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseArrowFuncExprBody()
Section titled “parseArrowFuncExprBody()”parseArrowFuncExprBody(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:764
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseFuncType()
Section titled “parseFuncType()”parseFuncType(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:775
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseParenthesised()
Section titled “parseParenthesised()”parseParenthesised(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:782
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseExpressionSeq()
Section titled “parseExpressionSeq()”parseExpressionSeq(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:789
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseBacktickString()
Section titled “parseBacktickString()”parseBacktickString(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:795
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseLiteralArray()
Section titled “parseLiteralArray()”parseLiteralArray(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:806
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseLiteralObject()
Section titled “parseLiteralObject()”parseLiteralObject(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:813
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseTemplateArg()
Section titled “parseTemplateArg()”parseTemplateArg(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:836
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseIndex()
Section titled “parseIndex()”parseIndex(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:847
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
parseTypeObjectEntry()
Section titled “parseTypeObjectEntry()”parseTypeObjectEntry(
s):boolean
Defined in: .work/repos/tabscript/src/parser.ts:854
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean