Expand optional «precedence»
where
«precedence» := leading_parser " : " >> precedenceParser
Equations
- Lean.Elab.Term.expandOptPrecedence stx = if stx.isNone = true then pure none else do let __do_lift ← Lean.evalPrec stx[0][1] pure (some __do_lift)
Instances For
- catName : Lake.Name
- first : Bool
- leftRec : Bool
- behavior : Lean.Parser.LeadingIdentBehavior
See comment at
Parser.ParserCategory
.
Instances For
Equations
Instances For
Instances For
(Try to) add a term info for the category catName
at ref
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Try to) add a term info for the alias with info info
at ref
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a stx
of category syntax
, return a (newStx, lhsPrec?)
,
where newStx
is of category term
. After elaboration, newStx
should have type
TrailingParserDescr
if lhsPrec?.isSome
, and ParserDescr
otherwise.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sequence (aka NullNode)
Equations
- Lean.Elab.Term.toParserDescr.ensureNoPrec stx = if stx[1].isNone = true then pure PUnit.unit else Lean.throwErrorAt stx[1] (Lean.toMessageData "unexpected precedence")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary function for creating declaration names from parser descriptions. Example: Given
syntax term "+" term : term
syntax "[" sepBy(term, ", ") "]" : term
It generates the names term_+_
and term[_,]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Command.mkNameFromParserSyntax.appendCatName (pre.str suffix) str = suffix ++ str
- Lean.Elab.Command.mkNameFromParserSyntax.appendCatName catName str = str
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Add macro scope to name
if it does not already have them, and attrKind
is local
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Infer syntax kind k
from first pattern, put alternatives of same kind into new macro/elab_rules (kind := k)
via mkCmd (some k)
,
leave remaining alternatives (via mkCmd none
) to be recursively expanded.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Command.strLitToPattern stx = match stx.isStrLit? with | some str => pure (Lean.mkAtomFrom stx str) | none => Lean.Macro.throwUnsupported