acrostic/parser

Types

pub type PbEnum {
  PbEnum(name: String, fields: List(PbEnumField))
}

Constructors

  • PbEnum(name: String, fields: List(PbEnumField))
pub type PbEnumField {
  PbEnumField(name: String, tag: Int)
}

Constructors

  • PbEnumField(name: String, tag: Int)
pub type PbMessage {
  Message(name: String, fields: List(PbMessageField))
}

Constructors

  • Message(name: String, fields: List(PbMessageField))
pub type PbMessageField {
  Field(repeated: Bool, ty: String, name: String, tag: Int)
}

Constructors

  • Field(repeated: Bool, ty: String, name: String, tag: Int)
pub type Token {
  MessageKeyword
  EnumKeyword
  LeftCurly
  RightCurly
  Repeated
  Equals
  Semicolon
  Num(Int)
  Comment(String)
  PascalIdentifier(String)
  SnakeIdentifier(String)
  Identifier(String)
}

Constructors

  • MessageKeyword
  • EnumKeyword
  • LeftCurly
  • RightCurly
  • Repeated
  • Equals
  • Semicolon
  • Num(Int)
  • Comment(String)
  • PascalIdentifier(String)
  • SnakeIdentifier(String)
  • Identifier(String)

Functions

pub fn parser() -> #(
  Lexer(Token, Nil),
  Parser(PbMessage, Token, a),
  Parser(PbEnum, Token, a),
)
Search Document