Module Stdlib.Parsing
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt
:DkSDKProject_DeclareAvailable(ocaml CONSTRAINT "= 4.14.0" FINDLIBS str unix runtime_events threads dynlink) DkSDKProject_MakeAvailable(ocaml)
Add the
Findlib::ocaml
library to any desired targets insrc/*/CMakeLists.txt
:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::ocaml)
Click your IDE's
Build
button
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install ocaml.4.14.0
Edit your
dune-project
and add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (ocaml (>= 4.14.0))))
Then run:
dune build *.opam # if this fails, run: dune build
Edit your
<package>.opam
file and add:depends: [ # ... existing dependencies ... "ocaml" {>= "4.14.0"} ]
Then run:
opam install . --deps-only
FINALLY, add the library to any desired
(library)
and/or (executable)
targets in your **/dune
files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
))
val
symbol_start : ``unit
->
int
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.
val
symbol_end : ``unit
->
int
See Parsing.symbol_start
.
val
rhs_start : ``int
->
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.
val
rhs_end : ``int
->
int
See Parsing.rhs_start
.
val
symbol_start_pos : ``unit
->
Lexing.position
Same as symbol_start
, but return a position
instead of an offset.
val
symbol_end_pos : ``unit
->
Lexing.position
Same as symbol_end
, but return a position
instead of an offset.
val
rhs_start_pos : ``int
->
Lexing.position
Same as rhs_start
, but return a position
instead of an offset.
val
rhs_end_pos : ``int
->
Lexing.position
Same as rhs_end
, but return a position
instead of an offset.
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. Can also be raised from the action part of a grammar rule, to initiate error recovery.
val
set_trace : ``bool
->
bool
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