Skip to main content
Module

x/pbkit/core/ast/textproto.ts

Protobuf toolkit for modern web development
Go to Latest
File
import { Span, Token } from "../parser/recursive-descent-parser.ts";
export interface Textproto { statements: TextprotoMessageStatement[];}
export type Node = | TextprotoComment | TextprotoField | TextprotoSemi | TextprotoComma | TextprotoDot | TextprotoFullIdent | TextprotoExtensionName | TextprotoAnyName | TextprotoListValue | TextprotoMessageValue | TextprotoStrLit | TextprotoIdent | TextprotoFloatLit | TextprotoDecLit | TextprotoOctLit | TextprotoHexLit | TextprotoSignedIdent | TextprotoSignedFloatLit | TextprotoSignedDecLit | TextprotoSignedOctLit | TextprotoSignedHexLit;
export interface TextprotoComment extends Token { type: "textproto-comment";}
export type TextprotoMessageStatement = | TextprotoField | TextprotoSemi | TextprotoComma;
export interface TextprotoField extends Span { type: "textproto-field"; fieldName: TextprotoFieldName; colon?: Token; value: TextprotoListValue | TextprotoMessageValue | TextprotoScalarValue; semiOrComma?: TextprotoSemi | TextprotoComma;}
export interface TextprotoSemi extends Token { type: "textproto-semi";}
export interface TextprotoComma extends Token { type: "textproto-comma";}
export interface TextprotoDot extends Token { type: "textproto-dot";}
export interface TextprotoFullIdent extends Span { type: "textproto-full-ident"; identOrDots: (TextprotoIdent | TextprotoDot)[];}
export type TextprotoFieldName = | TextprotoExtensionName | TextprotoAnyName | TextprotoIdent;
export interface TextprotoExtensionName extends Span { type: "textproto-extension-name"; bracketOpen: Token; typeName: TextprotoFullIdent; bracketClose: Token;}
export interface TextprotoAnyName extends Span { type: "textproto-any-name"; bracketOpen: Token; domain: TextprotoFullIdent; slash: Token; typeName: TextprotoFullIdent; bracketClose: Token;}
export interface TextprotoListValue extends Span { type: "textproto-list-value"; bracketOpen: Token; valueOrCommas: ( | TextprotoMessageValue | TextprotoScalarValue | TextprotoComma )[]; bracketClose: Token;}
export interface TextprotoMessageValue extends Span { type: "textproto-message-value"; bracketOpen: Token; statements: TextprotoMessageStatement[]; bracketClose: Token;}
export type TextprotoScalarValue = | TextprotoStrLit | TextprotoSignedIdent | TextprotoSignedFloatLit | TextprotoSignedOctLit | TextprotoSignedDecLit | TextprotoSignedHexLit;
export interface TextprotoStrLit extends Span { type: "textproto-str-lit"; tokens: Token[];}
export interface TextprotoIdent extends Token { type: "textproto-ident";}
export interface TextprotoFloatLit extends Token { type: "textproto-float-lit";}
export interface TextprotoOctLit extends Token { type: "textproto-oct-lit";}
export interface TextprotoDecLit extends Token { type: "textproto-dec-lit";}
export interface TextprotoHexLit extends Token { type: "textproto-hex-lit";}
export interface TextprotoSignedIdent extends Span { type: "textproto-signed-ident"; sign?: Token; value: TextprotoIdent;}
export interface TextprotoSignedFloatLit extends Span { type: "textproto-signed-float-lit"; sign?: Token; value: TextprotoFloatLit;}
export interface TextprotoSignedDecLit extends Span { type: "textproto-signed-dec-lit"; sign?: Token; value: TextprotoDecLit;}
export interface TextprotoSignedOctLit extends Span { type: "textproto-signed-oct-lit"; sign?: Token; value: TextprotoOctLit;}
export interface TextprotoSignedHexLit extends Span { type: "textproto-signed-hex-lit"; sign?: Token; value: TextprotoHexLit;}