module Higlo:sig..end
type token =
| |
Bcomment of |
(* |
block comment
| *) |
| |
Constant of |
|||
| |
Directive of |
|||
| |
Escape of |
(* |
Escape sequence like
\123 | *) |
| |
Id of |
|||
| |
Keyword of |
|||
| |
Lcomment of |
(* |
one line comment
| *) |
| |
Numeric of |
|||
| |
String of |
|||
| |
Symbol of |
|||
| |
Text of |
(* |
Used for everything else
| *) |
highlight tool. Keyword and Symbol are parametrized by
an integer to be able to distinguish different families of keywords
and symbols, as kwa, kwb, ..., in highlight.val string_of_token : token -> stringexception Unknown_lang of string
Higlo.get_lexer when the required language is not found.typelexer =Ulexing.lexbuf -> token list
Text tokens are merged by the Higlo.parse function.val get_lexer : string -> lexerget_lexer lang returns the lexer registered for the given language
lang or raises Higlo.Unknown_lang if no such language was registered.val register_lang : string -> lexer -> unitval parse : lang:string -> string -> token listparse ~lang code gets the lexer associated to lang
and uses it to build a list of tokens. Consecutive Text
tokens are merged.
If no lexer is associated to the given language, then
the function returns Text code.type classes = {
|
bcomment : |
|
constant : |
|
directive : |
|
escape : |
|
id : |
|
keyword : |
|
lcomment : |
|
numeric : |
|
string : |
|
symbol : |
|
text : |
val default_classes : classesval token_to_xtmpl : ?classes:classes -> token -> Xtmpl.tree<span class="...">code</span> node).classes : is used to change the class names used in the generated
node.val to_xtmpl : ?classes:classes -> lang:string -> string -> Xtmpl.tree listto_xtmpl ~lang code gets the lexer associated to the language lang,
uses it to retrieve a list of tokens (using the Higlo.parse function)
and maps these tokens to XML nodes. See Higlo.token_to_xtmpl about
the classes parameter.