Abstract Class: Parser
Defined in: src/parser.ts:34
The abstract base class for all Liquid template parsers.
Constructors
Constructor
new Parser(
env,source,templateName,tokens):Parser
Defined in: src/parser.ts:39
Parameters
env
source
string
templateName
string
tokens
Token[]
Returns
Parser
Properties
env
readonlyenv:Environment
Defined in: src/parser.ts:40
eoi
protectedeoi:Token
Defined in: src/parser.ts:35
pos
protectedpos:number=0
Defined in: src/parser.ts:36
source
readonlysource:string
Defined in: src/parser.ts:41
templateName
readonlytemplateName:string
Defined in: src/parser.ts:42
tokens
readonlytokens:Token[]
Defined in: src/parser.ts:43
whitespaceControlCarry
protectedwhitespaceControlCarry:"-"|undefined=undefined
Defined in: src/parser.ts:37
Methods
carryWhitespaceControl()
carryWhitespaceControl():
void
Defined in: src/parser.ts:68
Returns
void
current()
current():
Token
Defined in: src/parser.ts:81
Return the current token, or EOI if there are no tokens left. Does not increment the token pointer
Returns
currentValue()
currentValue():
string
Defined in: src/parser.ts:88
Return the current token's value. The substring represented by the token.
Returns
string
eat()
eat(
kind,message?):Token
Defined in: src/parser.ts:96
Assert and consume a token of kind kind.
Raises a syntax error if the current token's kind is not kind.
Parameters
kind
message?
string | undefined
Returns
eatEmptyTag()
eatEmptyTag(
name):Token
Defined in: src/parser.ts:111
Parameters
name
string
Returns
eatOneOf()
eatOneOf(
kinds):Token
Defined in: src/parser.ts:134
Consume the next token if its kind is in kinds.
Raises a syntax error if the current token kind is not in kinds.
Parameters
kinds
Set<TokenKind>
Returns
eatTag()
eatTag(
name):Token
Defined in: src/parser.ts:147
Parameters
name
string
Returns
expectExpression()
expectExpression():
void
Defined in: src/parser.ts:174
Throw an error if we're not at the start of an expression.
Returns
void
kind()
kind():
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67
Defined in: src/parser.ts:188
Return the kind of the current token.
Returns
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67
next()
next():
Token
Defined in: src/parser.ts:196
Return the current token and increment the token pointer. Returns EOI if there are no tokens left.
Returns
parseArguments()
abstractparseArguments(requireCommas?): (Expression|KeywordArgument)[]
Defined in: src/parser.ts:213
Parse positional and/or keyword arguments.
Assumes any leading commas have been consumed by the caller, if they are allowed.
Parameters
requireCommas?
boolean
When true, throw a syntax error if there is no comma between each argument.
Returns
(Expression | KeywordArgument)[]
parseBlock()
abstractparseBlock(end?):Block
Defined in: src/parser.ts:222
Parse template text and markup until reaching a named tag.
Parameters
end?
Set<string>
Possible tag names that terminate the block.
Returns
parseExpression()
abstractparseExpression(precedence?,infix?):Expression
Defined in: src/parser.ts:230
Parse a literal, variable or compound expression.
Parameters
precedence?
number
The binding power of this sub expression.
infix?
boolean
If true, accept infix operators when parsing the expression.
Returns
parseFilteredExpression()
abstractparseFilteredExpression(precedence?):Expression
Defined in: src/parser.ts:237
Parse an expression with optional filters.
Parameters
precedence?
number
The binding power of this sub expression.
Returns
parseIdent()
abstractparseIdent():Name
Defined in: src/parser.ts:243
Parse an identifier. Raises a syntax error if the identifier is followed by path segments.
Returns
parseKeywordArguments()
abstractparseKeywordArguments(requireCommas?):KeywordArgument[]
Defined in: src/parser.ts:251
Parse zero or more named arguments.
Assumes any leading commas have been consumed by the caller, if they are allowed.
Parameters
requireCommas?
boolean
Returns
parseLineStatements()
abstractparseLineStatements():Block
Defined in: src/parser.ts:258
Parse newline terminated markup from the {% liquid %} tag.
Returns
parseName()
abstractparseName():Name
Defined in: src/parser.ts:265
Parse an identifier, possibly surrounded by quotes.
Raises a syntax error if the identifier is followed by path segments.
Returns
parsePositionalArguments()
abstractparsePositionalArguments(requireCommas?):Expression[]
Defined in: src/parser.ts:276
Parse positional arguments.
Assumes any leading commas have been consumed by the caller, if they are allowed.
Parameters
requireCommas?
boolean
When true, throw a syntax error if there is no comma between each argument.
Returns
parseStringLiteral()
abstractparseStringLiteral():StringLiteral
Defined in: src/parser.ts:281
Parser a literal string surrounded by single or double quotes.
Returns
peek()
peek(
offset?):Token
Defined in: src/parser.ts:287
Return the token at self.pos + offset, or EOI if there are no tokens left. Does not advance the token pointer.
Parameters
offset?
number = 1
Returns
peekTagName()
peekTagName():
string
Defined in: src/parser.ts:295
Return the name of the current tag, or throw an error if we're not at a tag.
Returns
string
peekWhitespaceControl()
peekWhitespaceControl():
string|undefined
Defined in: src/parser.ts:311
Returns
string | undefined
skipWhitespaceControl()
skipWhitespaceControl():
void
Defined in: src/parser.ts:318
Returns
void
tag()
tag(
name):boolean
Defined in: src/parser.ts:327
Return true if we're at the start of a tag named name.
Parameters
name
string
Returns
boolean
tags()
tags(
names):string|undefined
Defined in: src/parser.ts:342
Return true if we're at the start of a tag and that tag's name is in
names.
Parameters
names
Set<string>
Returns
string | undefined
parse()
staticparse<P>(this,env,source,templateName,startIndex?):Block
Defined in: src/parser.ts:48
Type Parameters
P
P extends Parser
Parameters
this
(env, source, templateName, tokens) => P
env
source
string
templateName
string
startIndex?
number = 0