import { CharStream, Parser, ParserRuleContext, Token } from "antlr4ng"; import { Issue } from "../validation"; import { Position } from "../model/position"; import { Node } from "../model/model"; import { CodeProcessingResult } from "../model/processing"; import "../interop/antlr4"; export declare enum TokenCategory { COMMENT = "Comment", KEYWORD = "Keyword", NUMERIC_LITERAL = "Numeric literal", STRING_LITERAL = "String literal", OTHER_LITERAL = "Other literal", PLAIN_TEXT = "Plain text", WHITESPACE = "Whitespace", IDENTIFIER = "Identifier", PUNCTUATION = "Punctuation", OPERATOR = "Operator" } /** * A token is a portion of text that has been assigned a category. */ export declare class TylasuToken { readonly category: TokenCategory; readonly position: Position; readonly text?: string | null | undefined; constructor(category: TokenCategory, position: Position, text?: string | null | undefined); } /** * A [TylasuToken] generated from a [Token]. The [token] contains additional information that is specific to ANTLR, * such as type and channel. */ export declare class TylasuANTLRToken extends TylasuToken { readonly token: Token; constructor(category: TokenCategory, token: Token); } export declare class LexingResult extends CodeProcessingResult { time?: number; constructor(code: string, data: T[], issues: Issue[], time?: number); } export declare class FirstStageParsingResult extends CodeProcessingResult { readonly parser: Parser; readonly time?: number | undefined; readonly lexingTime?: number | undefined; readonly incompleteNode?: Node | undefined; constructor(code: string, data: C, issues: Issue[], parser: Parser, time?: number | undefined, lexingTime?: number | undefined, incompleteNode?: Node | undefined); get root(): C | undefined; } export declare class ParsingResult extends CodeProcessingResult { incompleteNode?: Node; firstStage?: FirstStageParsingResult; time?: number; constructor(code: string, data: RootNode | undefined, issues: Issue[], incompleteNode?: Node, firstStage?: FirstStageParsingResult, time?: number); get root(): RootNode | undefined; } export interface TylasuLexer { /** * Performs "lexing" on the given code stream or string, i.e., it breaks it into tokens. */ lex(code: string | CharStream, onlyFromDefaultChannel?: boolean): LexingResult; }