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 -> string
exception 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 -> lexer
get_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 -> unit
val parse : lang:string -> string -> token list
parse ~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 : classes
val 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 list
to_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.