annotate lab4/lexer.mli @ 1:b5139af1a420 tip basis

Fixed permissions on compile scripts
author Mike Spivey <mike@cs.ox.ac.uk>
date Fri, 13 Oct 2017 17:27:58 +0100
parents bfdcc3820b32
children
rev   line source
0
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
1 (* lab4/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 (* The lexer is generated from a camllex script. It takes an input
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
7 buffer, reads a token, and returns the |token| value that corresponds
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
8 to it. The lexer maintains the current line number in |lineno| for
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
9 producing error messages. Lexical errors result in the exception
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
10 |Lex_error|, whose arguments are a format and argument list suitable
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
11 for passing to |printf| to print the message. *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
12
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
13 (* |token| -- scan a token and return its code *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
14 val token : Lexing.lexbuf -> Parser.token
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
15
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
16 (* |lineno| -- source line number *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
17 val lineno : int ref
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
18
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
19 (* |string_table| -- fetch table of string constants *)
Mike Spivey <mike@cs.ox.ac.uk>
parents:
diff changeset
20 val string_table : unit -> (Optree.symbol * string) list