Library
Module
Module type
Parameter
Class
Class type
The type of language modules.
module Lexer : Dolmen_intf.Lex.S with type token := token
The Lexer module for the language.
module Parser :
Dolmen_intf.Parse.S
with type token := token
and type statement := Dolmen.Std.Statement.t
The Parser module for the language.
Helper function to find a file using a language specification. Separates directory and file because most include directives in languages are relative to the directory of the original file being processed.
val parse_file : string -> Dolmen.Std.Loc.file * Dolmen.Std.Statement.t list
Parse the given file.
val parse_file_lazy :
string ->
Dolmen.Std.Loc.file * Dolmen.Std.Statement.t list Stdlib.Lazy.t
Parse the given file.
val parse_input :
[ `Stdin | `File of string | `Contents of string * string ] ->
Dolmen.Std.Loc.file
* (unit ->
Dolmen.Std.Statement.t option)
* (unit ->
unit)
Incremental parsing. Given an input to read (either a file, stdin, or some contents of the form (filename, s)
where s
is the contents to parse), returns a generator that will incrementally parse the statements, together with a cleanup function to close file descriptors. In case of a syntax error, the current line will be completely consumed and parsing will restart at the beginning of the next line. Useful to process input from stdin
, or even large files where it would be impractical to parse the entire file before processing it.