-
Notifications
You must be signed in to change notification settings - Fork 460
/
Copy pathparsing.resi
101 lines (84 loc) · 3.48 KB
/
parsing.resi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* ************************************************************************ */
/* */
/* OCaml */
/* */
/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
/* */
/* Copyright 1996 Institut National de Recherche en Informatique et */
/* en Automatique. */
/* */
/* All rights reserved. This file is distributed under the terms of */
/* the GNU Lesser General Public License version 2.1, with the */
/* special exception on linking described in the file LICENSE. */
/* */
/* ************************************************************************ */
/* The run-time library for parsers generated by [ocamlyacc]. */
/** [symbol_start] and {!Parsing.symbol_end} are to be called in the
action part of a grammar rule only. They return the offset of the
string that matches the left-hand side of the rule: [symbol_start()]
returns the offset of the first character; [symbol_end()] returns the
offset after the last character. The first character in a file is at
offset 0. */
let symbol_start: unit => int
/** See {!Parsing.symbol_start}. */
let symbol_end: unit => int
/** Same as {!Parsing.symbol_start} and {!Parsing.symbol_end}, but
return the offset of the string matching the [n]th item on the
right-hand side of the rule, where [n] is the integer parameter
to [rhs_start] and [rhs_end]. [n] is 1 for the leftmost item. */
let rhs_start: int => int
/** See {!Parsing.rhs_start}. */
let rhs_end: int => int
/** Same as [symbol_start], but return a [position] instead of an offset. */
let symbol_start_pos: unit => Lexing.position
/** Same as [symbol_end], but return a [position] instead of an offset. */
let symbol_end_pos: unit => Lexing.position
/** Same as [rhs_start], but return a [position] instead of an offset. */
let rhs_start_pos: int => Lexing.position
/** Same as [rhs_end], but return a [position] instead of an offset. */
let rhs_end_pos: int => Lexing.position
/** Empty the parser stack. Call it just after a parsing function
has returned, to remove all pointers from the parser stack
to structures that were built by semantic actions during parsing.
This is optional, but lowers the memory requirements of the
programs. */
let clear_parser: unit => unit
/** Raised when a parser encounters a syntax error.
Can also be raised from the action part of a grammar rule,
to initiate error recovery. */
exception Parse_error
/** Control debugging support for [ocamlyacc]-generated parsers.
After [Parsing.set_trace true], the pushdown automaton that
executes the parsers prints a trace of its actions (reading a token,
shifting a state, reducing by a rule) on standard output.
[Parsing.set_trace false] turns this debugging trace off.
The boolean returned is the previous state of the trace flag.
@since 3.11.0
*/
let set_trace: bool => bool
/* The following definitions are used by the generated parsers only.
They are not intended to be used directly by user programs. */
type parser_env
type parse_tables = {
actions: array<parser_env => Obj.t>,
transl_const: array<int>,
transl_block: array<int>,
lhs: string,
len: string,
defred: string,
dgoto: string,
sindex: string,
rindex: string,
gindex: string,
tablesize: int,
table: string,
check: string,
error_function: string => unit,
names_const: string,
names_block: string,
}
exception YYexit(Obj.t)
let yyparse: (parse_tables, int, Lexing.lexbuf => 'a, Lexing.lexbuf) => 'b
let peek_val: (parser_env, int) => 'a
let is_current_lookahead: 'a => bool
let parse_error: string => unit