package alba
Library
Module
Module type
Parameter
Class
Class type
Normal Parser.
State
: User state.Final
: Final result type of the parser.Semantic
: Semantic error message (triggered byfail message
)Context_msg
: Each new context is opened with a value of typeContext_msg
.
Parameters
module State : Module_types.ANY
module Final : Module_types.ANY
module Semantic : Module_types.ANY
module Context_msg : Module_types.ANY
Signature
Modules and Types
module Context : CONTEXT with type msg = Context_msg.t
module Error :
Generic_parser.ERROR
with type expect = string * Indent.t
and type semantic = Semantic.t
type final = Final.t
Combinators
include COMBINATORS
with type expect = string
and type semantic = Semantic.t
and type state = State.t
and type context = Context_msg.t
Basic Combinators
include Generic_parser.COMBINATORS with type semantic = Semantic.t
type semantic = Semantic.t
val return : 'a -> 'a t
val succeed : 'a -> 'a t
Position and State Combinators
val get_position : Position.t t
Indentation Combinators
val get_bounds : (int * int option) t
Context Combinator
type context = Context_msg.t
val expect : (char -> bool) -> string -> char t
Character Combinators
val expect_end : unit t
val one_of_chars : string -> string -> char t
val string : string -> unit t
val char : char -> unit t
val space : unit t
val letter : char t
val digit : char t
val word : (char -> bool) -> (char -> bool) -> string -> string t
word start_char inner_char error_message
A word starts with a character satisfying start_char
followed by zero or more characters satisfying inner_char
.
In case that the first character does not satisfy start_char
an unsatisfied expectation with error_message
is entered.
Parser
During Parsing
include PARSER with type state = State.t
type state = State.t
State type
val needs_more : parser -> bool
Does the parser need more tokens (i.e. either put_character
or put_end
)?
val has_ended : parser -> bool
Has the parser terminated (opposite of needs_more p
)?
val has_succeeded : parser -> bool
Has the parser succeeded
val has_failed : parser -> bool
Has the parser failed
val position : parser -> Position.t
The current position.
val line : parser -> int
The current line.
val column : parser -> int
The current column.
val error_tabs : parser -> int list
put_character p c
feeds the parser p
with the character token c
. Only possible if needs_more p
is valid.
Terminated Parser
The result the parser has produced which is either a final value or a list of dead ends. Only valid if the parser has terminated.
The list of tokens (i.e. optional characters) which the parser has not processed at the point of termination.
val lookahead_string : parser -> string
Create and Run the Parser
make pc st
makes a parser from a parser combinator pc
with the initial state st
.