The KeywordFn
functor provides a simple way to support a table of keyword
(or reserved) identifiers in a scanner.
Synopsis
functor KeywordFn ()
Functor Argument Interface
type token
type pos
val ident : (Atom.atom * pos * pos) -> token
val keywords : (string * ((pos * pos) -> token)) list
Functor Argument Description
type token
-
The type of tokens in the scanner.
type pos
-
The type of source file positions used by the scanner (e.g., character positions in the source file).
val ident : (Atom.atom * pos * pos) -> token
-
ident (id, pos, pos)
is used to create an identifier token (i.e., non-keyword) for the given string, and start and end file positions.
val keywords : (string * pos * pos) -> token list
-
A list of string-function pairs, where the strings are the keywords and the functions are used to create the corresponding scanner tokens from start and end file positions.
Interface
type token
type pos
val keyword : (string * pos * pos) -> token
Interface Description
type token
-
The type of tokens in the scanner.
type pos
-
The type of source file positions used by the scanner.
val keyword : (string * pos * pos) → token
-
keyword (id, p1, p2)
returns the token for the identifierid
, which is either one of the keyword tokens from thekeywords
list or otherwise is an identifier token created using theident
function.