summaryrefslogtreecommitdiffstats
path: root/stdlib/parsing.mli
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/parsing.mli')
-rw-r--r--stdlib/parsing.mli51
1 files changed, 51 insertions, 0 deletions
diff --git a/stdlib/parsing.mli b/stdlib/parsing.mli
new file mode 100644
index 000000000..9f5fbaffb
--- /dev/null
+++ b/stdlib/parsing.mli
@@ -0,0 +1,51 @@
+(* The run-time library for parsers generated by camlyacc *)
+
+val symbol_start : unit -> int
+val symbol_end : unit -> int
+ (* [symbol_start] and [symbol_end] are to be called in the action part
+ of a grammar rule only. They return the position of the string that
+ matches the left-hand side of the rule: [symbol_start()] returns
+ the position of the first character; [symbol_end()] returns the
+ position of the last character, plus one. The first character
+ in a file is at position 0. *)
+val rhs_start: int -> int
+val rhs_end: int -> int
+ (* Same as [symbol_start] and [symbol_end] above, but return then
+ position of the string matching the [n]th item on the
+ right-hand side of the rule, where [n] is the integer parameter
+ to [lhs_start] and [lhs_end]. [n] is 1 for the leftmost item. *)
+val clear_parser : unit -> unit
+ (* 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. *)
+
+exception Parse_error
+ (* Raised when a parser encounters a syntax error. *)
+
+(*--*)
+
+(* The following definitions are used by the generated parsers only.
+ They are not intended to be used by user programs. *)
+
+type parse_tables =
+ { actions : (unit -> Obj.t) array;
+ transl : int array;
+ lhs : string;
+ len : string;
+ defred : string;
+ dgoto : string;
+ sindex : string;
+ rindex : string;
+ gindex : string;
+ tablesize : int;
+ table : string;
+ check : string }
+
+exception YYexit of Obj.t
+
+val yyparse :
+ parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
+val peek_val : int -> 'a
+val is_current_lookahead: 'a -> bool