File: .lake/packages/lean4/src/lean/Lean/Elab/Frontend.lean

full_name: Lean.Elab.Frontend.State
code: structure State where
  commandState : Command.State
  parserState  : Parser.ModuleParserState
  cmdPos       : String.Pos
  commands     : Array Syntax := #[]
deriving Nonempty
goal: Type

full_name: Lean.Elab.Frontend.State.cmdPos
code: structure State where
  commandState : Command.State
  parserState  : Parser.ModuleParserState
  cmdPos       : String.Pos
  commands     : Array Syntax := #[]
deriving Nonempty
goal: String.Pos

full_name: Lean.Elab.Frontend.State.commands
code: structure State where
  commandState : Command.State
  parserState  : Parser.ModuleParserState
  cmdPos       : String.Pos
  commands     : Array Syntax := #[]
deriving Nonempty
goal: Array Lean.Syntax

full_name: Lean.Elab.Frontend.State.commandState
code: structure State where
  commandState : Command.State
  parserState  : Parser.ModuleParserState
  cmdPos       : String.Pos
  commands     : Array Syntax := #[]
deriving Nonempty
goal: Lean.Elab.Command.State

full_name: Lean.Elab.Frontend.State.parserState
code: structure State where
  commandState : Command.State
  parserState  : Parser.ModuleParserState
  cmdPos       : String.Pos
  commands     : Array Syntax := #[]
deriving Nonempty
goal: Lean.Parser.ModuleParserState

full_name: Lean.Elab.Frontend.instNonemptyState
code: structure State where
  commandState : Command.State
  parserState  : Parser.ModuleParserState
  cmdPos       : String.Pos
  commands     : Array Syntax := #[]
deriving Nonempty
goal: Nonempty Lean.Elab.Frontend.State

full_name: Lean.Elab.Frontend.Context
code: structure Context where
  inputCtx : Parser.InputContext
goal: Type

full_name: Lean.Elab.Frontend.Context.inputCtx
code: structure Context where
  inputCtx : Parser.InputContext
goal: Lean.Parser.InputContext

full_name: Lean.Elab.Frontend.FrontendM
code: abbrev FrontendM 
goal: Type

full_name: Lean.Elab.Frontend.setCommandState
code: def setCommandState (commandState : Command.State) : FrontendM Unit 
goal: Lean.Elab.Frontend.FrontendM Unit

full_name: Lean.Elab.Frontend.runCommandElabM
code: @[inline] def runCommandElabM (x : Command.CommandElabM α) : FrontendM α 
goal: Lean.Elab.Frontend.FrontendM α

full_name: Lean.Elab.Frontend.elabCommandAtFrontend
code: def elabCommandAtFrontend (stx : Syntax) : FrontendM Unit 
goal: Lean.Elab.Frontend.FrontendM Unit

full_name: Lean.Elab.Frontend.updateCmdPos
code: def updateCmdPos : FrontendM Unit 
goal: Lean.Elab.Frontend.FrontendM Unit

full_name: Lean.Elab.Frontend.getParserState
code: def getParserState : FrontendM Parser.ModuleParserState 
goal: Lean.Elab.Frontend.FrontendM Lean.Parser.ModuleParserState

full_name: Lean.Elab.Frontend.getCommandState
code: def getCommandState : FrontendM Command.State 
goal: Lean.Elab.Frontend.FrontendM Lean.Elab.Command.State

full_name: Lean.Elab.Frontend.setParserState
code: def setParserState (ps : Parser.ModuleParserState) : FrontendM Unit 
goal: Lean.Elab.Frontend.FrontendM Unit

full_name: Lean.Elab.Frontend.setMessages
code: def setMessages (msgs : MessageLog) : FrontendM Unit 
goal: Lean.Elab.Frontend.FrontendM Unit

full_name: Lean.Elab.Frontend.getInputContext
code: def getInputContext : FrontendM Parser.InputContext 
goal: Lean.Elab.Frontend.FrontendM Lean.Parser.InputContext

full_name: Lean.Elab.Frontend.processCommand
code: def processCommand : FrontendM Bool 
goal: Lean.Elab.Frontend.FrontendM Bool

full_name: Lean.Elab.Frontend.processCommands
code: partial def processCommands : FrontendM Unit 
goal: Lean.Elab.Frontend.FrontendM Unit

full_name: Lean.Elab.IO.processCommands
code: def IO.processCommands (inputCtx : Parser.InputContext) (parserState : Parser.ModuleParserState) (commandState : Command.State) : IO State 
goal: IO Lean.Elab.Frontend.State

full_name: Lean.Elab.IncrementalState.inputCtx
code: structure IncrementalState extends State where
  inputCtx    : Parser.InputContext
  initialSnap : Language.Lean.CommandParsedSnapshot
deriving Nonempty
goal: Lean.Parser.InputContext

full_name: Lean.Elab.IncrementalState.initialSnap
code: structure IncrementalState extends State where
  inputCtx    : Parser.InputContext
  initialSnap : Language.Lean.CommandParsedSnapshot
deriving Nonempty
goal: Lean.Language.Lean.CommandParsedSnapshot

full_name: Lean.Elab.instNonemptyIncrementalState
code: structure IncrementalState extends State where
  inputCtx    : Parser.InputContext
  initialSnap : Language.Lean.CommandParsedSnapshot
deriving Nonempty
goal: Nonempty Lean.Elab.IncrementalState

full_name: Lean.Elab.IncrementalState
code: structure IncrementalState extends State where
  inputCtx    : Parser.InputContext
  initialSnap : Language.Lean.CommandParsedSnapshot
deriving Nonempty
goal: Type

full_name: Lean.Elab.IO.processCommandsIncrementally
code: /--
Variant of `IO.processCommands` that uses the new Lean language processor implementation for
potential incremental reuse. Pass in result of a previous invocation done with the same state
(but usually different input context) to allow for reuse.
-/
-- `IO.processCommands` can be reimplemented on top of this as soon as the additional tasks speed up
-- things instead of slowing them down
partial def IO.processCommandsIncrementally (inputCtx : Parser.InputContext)
    (parserState : Parser.ModuleParserState) (commandState : Command.State)
    (old? : Option IncrementalState) :
    BaseIO IncrementalState 
goal: BaseIO Lean.Elab.IncrementalState

full_name: Lean.Elab.IO.processCommandsIncrementally.go
code: /--
Variant of `IO.processCommands` that uses the new Lean language processor implementation for
potential incremental reuse. Pass in result of a previous invocation done with the same state
(but usually different input context) to allow for reuse.
-/
-- `IO.processCommands` can be reimplemented on top of this as soon as the additional tasks speed up
-- things instead of slowing them down
partial def IO.processCommandsIncrementally (inputCtx : Parser.InputContext)
    (parserState : Parser.ModuleParserState) (commandState : Command.State)
    (old? : Option IncrementalState) :
    BaseIO IncrementalState 
goal: BaseIO Lean.Elab.IncrementalState

full_name: Lean.Elab.process
code: def process (input : String) (env : Environment) (opts : Options) (fileName : Option String := none) : IO (Environment × MessageLog) 
goal: IO (Lean.Environment × Lean.MessageLog)

full_name: Lean.Elab.runFrontend
code: @[export lean_run_frontend]
def runFrontend
    (input : String)
    (opts : Options)
    (fileName : String)
    (mainModuleName : Name)
    (trustLevel : UInt32 := 0)
    (ileanFileName? : Option String := none)
    (jsonOutput : Bool := false)
    : IO (Environment × Bool) 
goal: IO (Lean.Environment × Bool)