This commit is contained in:
harttle
2019-02-19 23:55:38 +08:00
parent cbebb00ef1
commit 29f53304bc
70 changed files with 3162 additions and 2565 deletions
+6
View File
@@ -0,0 +1,6 @@
import Token from './token';
export default class DelimitedToken extends Token {
trimLeft: boolean;
trimRight: boolean;
constructor(raw: any, pos: any, input: any, file: any, line: any);
}
+4
View File
@@ -0,0 +1,4 @@
import Token from './token';
export default class HTMLToken extends Token {
constructor(str: any, begin: any, input: any, file: any, line: any);
}
+35
View File
@@ -0,0 +1,35 @@
export declare const quoted: RegExp;
export declare const quoteBalanced: RegExp;
export declare const integer: RegExp;
export declare const number: RegExp;
export declare const bool: RegExp;
export declare const identifier: RegExp;
export declare const subscript: RegExp;
export declare const literal: RegExp;
export declare const variable: RegExp;
export declare const rangeLimit: RegExp;
export declare const range: RegExp;
export declare const rangeCapture: RegExp;
export declare const value: RegExp;
export declare const hash: RegExp;
export declare const hashCapture: RegExp;
export declare const tagLine: RegExp;
export declare const literalLine: RegExp;
export declare const variableLine: RegExp;
export declare const numberLine: RegExp;
export declare const boolLine: RegExp;
export declare const quotedLine: RegExp;
export declare const rangeLine: RegExp;
export declare const integerLine: RegExp;
export declare const valueDeclaration: RegExp;
export declare const valueList: RegExp;
export declare const filter: RegExp;
export declare const filterCapture: RegExp;
export declare const filterLine: RegExp;
export declare const operators: RegExp[];
export declare function isInteger(str: any): boolean;
export declare function isLiteral(str: any): boolean;
export declare function isRange(str: any): boolean;
export declare function isVariable(str: any): boolean;
export declare function matchValue(str: any): RegExpExecArray;
export declare function parseLiteral(str: any): any;
+4
View File
@@ -0,0 +1,4 @@
import DelimitedToken from './delimited-token';
export default class OutputToken extends DelimitedToken {
constructor(raw: any, pos: any, input: any, file: any, line: any);
}
+16
View File
@@ -0,0 +1,16 @@
import Token from 'src/parser/token';
import ITemplate from 'src/template/itemplate';
declare type parseToken = (token: Token, remainTokens: Array<Token>) => ITemplate;
declare type eventHandler = ((arg?: Token | ITemplate) => void);
export default class ParseStream {
private tokens;
private handlers;
private stopRequested;
private parseToken;
constructor(tokens: Array<Token>, parseToken: parseToken);
on(name: string, cb: eventHandler): this;
trigger(event: string, arg?: Token | ITemplate): boolean;
start(): this;
stop(): this;
}
export {};
+13
View File
@@ -0,0 +1,13 @@
import Liquid from 'src/liquid';
import ParseStream from './parse-stream';
import Token from './token';
import Tag from 'src/template/tag/tag';
import Output from 'src/template/output';
import HTML from 'src/template/html';
export default class Parser {
liquid: Liquid;
constructor(liquid: Liquid);
parse(tokens: Array<Token>): any[];
parseToken(token: Token, remainTokens: Array<Token>): Tag | Output | HTML;
parseStream(tokens: Array<Token>): ParseStream;
}
+6
View File
@@ -0,0 +1,6 @@
import DelimitedToken from './delimited-token';
export default class TagToken extends DelimitedToken {
name: string;
args: string;
constructor(raw: any, pos: any, input: any, file: any, line: any);
}
+9
View File
@@ -0,0 +1,9 @@
export default class Token {
type: string;
line: number;
raw: string;
input: string;
file: string;
value: string;
constructor(raw: any, pos: any, input: any, file: any, line: any);
}
+6
View File
@@ -0,0 +1,6 @@
import { LiquidOptions } from 'src/liquid-options';
export default class Tokenizer {
options: LiquidOptions;
constructor(options?: LiquidOptions);
tokenize(input: string, file?: string): any[];
}
+3
View File
@@ -0,0 +1,3 @@
import Token from 'src/parser/token';
import { LiquidOptions } from 'src/liquid-options';
export default function whiteSpaceCtrl(tokens: Token[], options: LiquidOptions): void;