Surface.Lexer_commonAuxiliary functions used by all lexers.
val with_lexing_context : Catala_utils.File.t -> (unit -> 'a) -> 'aInitialises the lexing context during the call of the supplied function, which is required for using the lexer. Calls can be nested. Upon termination, emits a warning if the lexer is not in a consistent state (Law context, no pending code content)
val context : lexing_context Stdlib.refReference, used by the lexer as the mutable state to distinguish whether it is lexing code or law.
The position of the opening token of the last opened context
Updates the current code buffer with the current lexeme. The underlying buffer is used to accumulate the string representation of the body of code being lexed. This string representation is used in the literate programming backends to faithfully capture the spacing pattern of the original program
exception Lexing_error of Catala_utils.Pos.t * stringval raise_lexer_error : Catala_utils.Pos.t -> string -> 'aError-generating helper
val token_list_language_agnostic : (string * Tokens.token) listAssociative list matching each punctuation string part of the Catala syntax with its Surface.Parser token. Same for all the input languages (English, French, etc.)
Calculates the precedence according a matched regex of the form : '#+'
val get_law_heading : Sedlexing.lexbuf -> Tokens.tokenGets the LAW_HEADING token from the current lexbuf
type line_token = | LINE_INLINE_TEST```catala-test-cli
*)| LINE_BLOCK_END```
*)| LINE_INCLUDE of string> Include foo.catala_en
*)| LINE_MODULE_DEF of string * bool> Module Xxx external
| LINE_MODULE_USE of string> Using Xxx as Yyy
| LINE_TEST_ATTRIBUTEany line containing a #test attribute
| LINE_ANYanything else
*)Simplified tokens for dependency extraction
module type LocalisedLexer = sig ... end