Documentation

Lean.Parser.Extension

Extensible parsing via attributes

Equations
Equations
@[reducible, inline]
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
inductive Lean.Parser.AliasValue (α : Type) :

Parser aliases for making ParserDescr extensible

Equations
  • One or more equations did not get rendered due to their size.
Equations
def Lean.Parser.getConstAlias {α : Type} (mapRef : IO.Ref (Lean.Parser.AliasTable α)) (aliasName : Lake.Name) :
IO α
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Parser.getUnaryAlias {α : Type} (mapRef : IO.Ref (Lean.Parser.AliasTable α)) (aliasName : Lake.Name) :
IO (αα)
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Parser.getBinaryAlias {α : Type} (mapRef : IO.Ref (Lean.Parser.AliasTable α)) (aliasName : Lake.Name) :
IO (ααα)
Equations
  • One or more equations did not get rendered due to their size.
  • declName : Lake.Name
  • stackSz? : Option Nat

    Number of syntax nodes produced by this parser. none means "sum of input sizes".

  • autoGroupArgs : Bool

    Whether arguments should be wrapped in group(·) if they do not produce exactly one syntax node.

Equations
  • One or more equations did not get rendered due to their size.
def Lean.Parser.registerAlias (aliasName : Lake.Name) (declName : Lake.Name) (p : Lean.Parser.ParserAliasValue) (kind? : optParam (Option Lean.SyntaxNodeKind) none) (info : optParam Lean.Parser.ParserAliasInfo { declName := Lean.Name.anonymous, stackSz? := some 1, autoGroupArgs := (some 1).isSome }) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
@[implemented_by Lean.Parser.mkParserOfConstantUnsafe]
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
@[implemented_by Lean.Parser.evalParserConstUnsafe]

Run declName if possible and inside a quotation, or else p. The ParserInfo will always be taken from p.

Equations
  • One or more equations did not get rendered due to their size.
def Lean.Parser.addBuiltinParser (catName : Lake.Name) (declName : Lake.Name) (leading : Bool) (p : Lean.Parser.Parser) (prio : Nat) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Parser.mkInputContext (input : String) (fileName : String) (normalizeLineEndings : optParam Bool true) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
def Lean.Parser.runParserCategory (env : Lean.Environment) (catName : Lake.Name) (input : String) (fileName : optParam String "<input>") :

convenience function for testing

Equations
  • One or more equations did not get rendered due to their size.
def Lean.Parser.declareBuiltinParser (addFnName : Lake.Name) (catName : Lake.Name) (declName : Lake.Name) (prio : Nat) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.

The parsing tables for builtin parsers are "stored" in the extracted source code.

Equations
Equations
  • One or more equations did not get rendered due to their size.

A builtin parser attribute that can be extended by users.

Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.

If the parsing stack is of the form #[.., openCommand], we process the open command, and execute p

Equations
  • One or more equations did not get rendered due to their size.

If the parsing stack is of the form #[.., openDecl], we process the open declaration, and execute p

Equations

Helper environment extension that gives us access to built-in aliases in pure parser functions.

Result of resolving a parser name.

Resolve the given parser name and return a list of candidates.

Equations
Equations
  • One or more equations did not get rendered due to their size.

Resolve the given parser name and return a list of candidates.

Equations

Resolve the given parser name and return a list of candidates.

Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.