Add poc files
This commit is contained in:
parent
30da2412e3
commit
fa600b98f7
220 changed files with 45679 additions and 0 deletions
42
h_program-lang/ast_fuzzy.mli
Normal file
42
h_program-lang/ast_fuzzy.mli
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
type tok = Parse_info.info
|
||||
type 'a wrap = 'a * tok
|
||||
|
||||
type tree =
|
||||
| Braces of tok * trees * tok
|
||||
| Parens of tok * (trees, tok (* comma*)) Common.either list * tok
|
||||
| Angle of tok * trees * tok
|
||||
|
||||
(* note that gcc allows $ in identifiers, so using $ for metavariables
|
||||
* means we will not be able to match such identifiers (but no big deal)
|
||||
*)
|
||||
| Metavar of string wrap
|
||||
(* note that "..." are allowed in many languages, so using "..."
|
||||
* to represent a list of anything means we will not be able to
|
||||
* match specifically "...".
|
||||
*)
|
||||
| Dots of tok
|
||||
|
||||
| Tok of string wrap
|
||||
|
||||
and trees = tree list
|
||||
|
||||
(* see matcher/parse_fuzzy.mli for helpers to build such trees *)
|
||||
|
||||
val is_metavar: string -> bool
|
||||
|
||||
(* visitors, dumpers, extractors, abstractors, mappers *)
|
||||
|
||||
val abstract_position_trees: trees -> trees
|
||||
val toks_of_trees: trees -> tok list
|
||||
val vof_trees: trees -> Ocaml.v
|
||||
|
||||
type visitor_out = trees -> unit
|
||||
type visitor_in = {
|
||||
ktree: (tree -> unit) * visitor_out -> tree -> unit;
|
||||
ktrees: (trees -> unit) * visitor_out -> trees -> unit;
|
||||
ktok: (tok -> unit) * visitor_out -> tok -> unit;
|
||||
}
|
||||
|
||||
val default_visitor: visitor_in
|
||||
val mk_visitor: visitor_in -> visitor_out
|
||||
Loading…
Add table
Add a link
Reference in a new issue