@grammar/son
Version:
SON grammar.
103 lines • 3.28 kB
TypeScript
import $ from './spellu-engine';
declare namespace grammar$son { }
declare namespace grammar$son {
const enum Syntax {
Array = "son.Array",
Object = "son.Object",
String = "son.String",
Number = "son.Number",
Boolean = "son.Boolean",
Null = "son.Null",
Comment = "son.Comment"
}
const enum Syntax {
OpenBracketToken = "son.token.bracket-[",
CloseBracketToken = "son.token.bracket-]",
OpenBraceToken = "son.token.brace-{",
CloseBraceToken = "son.token.brace-}",
CommaToken = "son.token.comma",
ColonToken = "son.token.colon",
SingleQuote = "son.token.single-quote",
DoubleQuote = "son.token.double-quote",
IdentifierToken = "son.token.identifier",
NumberToken = "son.token.number",
BooleanToken = "son.token.boolean",
NullToken = "son.token.null",
TextToken = "son.token.text",
EscapedUnicodeCharacterToken = "son.token.escaped-unicode-character",
EscapedSignCharacterToken = "son.token.escaped-sign-character",
ErrorToken = "son.token.error"
}
type WholeNodes = Array | Object | String | Number | Boolean | Null | Comment | Token;
type Token = $.Token;
type SyntaxScope = $.SyntaxScope;
type Value = Array | Object | String | Number | Boolean | Null;
interface Array extends $.Node {
syntax: Syntax.Array;
items: Value[];
}
interface Object extends $.Node {
syntax: Syntax.Object;
items: [Token, Value][];
}
interface String extends $.Node {
syntax: Syntax.String;
value: string;
tokens: Token[];
}
interface Number extends $.Node {
syntax: Syntax.Number;
value: number;
token: Token;
}
interface Boolean extends $.Node {
syntax: Syntax.Boolean;
value: boolean;
token: Token;
}
interface Null extends $.Node {
syntax: Syntax.Null;
value: null;
token: Token;
}
interface Comment extends $.Node {
syntax: Syntax.Null;
text: string;
token: Token;
}
}
declare namespace grammar$son {
const recipe: $.Recipe;
}
declare namespace grammar$son {
const processors: $.Dictionary<$.Processor>;
}
declare namespace grammar$son {
}
declare namespace grammar$son {
}
declare namespace grammar$son {
}
declare namespace grammar$son {
}
declare namespace grammar$son {
enum ProcessorSuite {
CST = "cst",
AST = "ast",
Syntax = "syntax",
Value = "value"
}
function selectProcessorSuite(suite: ProcessorSuite): $.Processor[];
function scan<V>(source: string | $.SourceDescriptor, suite?: ProcessorSuite, rule?: string, options?: Partial<$.ScanOptions>): V;
function tokenize(source: string | $.SourceDescriptor, options?: Partial<$.ScanOptions>): $.SyntaxToken[];
function parse<V>(source: string | $.SourceDescriptor, options?: Partial<$.ScanOptions>): V;
}
declare namespace grammar$son {
type PrintOptions = {
pretty?: boolean;
};
export function print(value: Value, options?: PrintOptions): string;
export {};
}
export default grammar$son;
//# sourceMappingURL=grammar-son.d.ts.map