annotate ppc/lexer.mli @ 0:bfdcc3820b32

Basis
author Mike Spivey <mike@cs.ox.ac.uk>
date Thu, 05 Oct 2017 08:04:15 +0100
parents
children
rev   line source
0
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
1 (* ppc/lexer.mli *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
2 (* Copyright (c) 2017 J. M. Spivey *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
3
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
4 open Dict
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
5
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
6 (*
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
7 The lexer is generated from a camllex script. It takes an input
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
8 buffer, reads a token, and returns the |token| value that corresponds
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
9 to it. The lexer maintains the current line number in |lineno| for
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
10 producing error messages. Lexical errors result in the exception
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
11 |Lex_error|, whose arguments are a format and argument list suitable
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
12 for passing to |printf| to print the message.
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
13 *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
14
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
15 (* |token| -- scan a token and return its code *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
16 val token : Lexing.lexbuf -> Parser.token
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
17
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
18 (* |lineno| -- source line number *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
19 val lineno : int ref
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
20
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
21 (* |string_table| -- fetch table of string constants *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
22 val string_table : unit -> (Keiko.symbol * string) list