Browse thread
Misunderstandings about the AST
- Loup Vaillant
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Loup Vaillant <loup.vaillant@g...> |
| Subject: | Misunderstandings about the AST |
Good afternoon, Pursuing my goal of making a lisp syntax for Ocaml, I began to take a close look at the AST (Ocaml-3.09.3/parsing/parsetree.mli). I don't understand some of the constructors in the type expression_desc: | Pexp_function of label * expression option * (pattern * expression) list What is the "expression option" for? | Pexp_construct of Longident.t * expression option * bool What is the boolean for? | Pexp_variant of label * expression option What is a "variant"? (Does not seem to be related to variant types, as "Pexp_construct" is used for them) | Pexp_record of (Longident.t * expression) list * expression option What is the "expression option" for? | Pexp_constraint of expression * core_type option * core_type option Why two "core_type option", instead of just a "core_type"? | Pexp_when of expression * expression Why not "pattern * expression"? | Pexp_send of expression * string What does "Pexp_send" stand for? | Pexp_new of Longident.t What does "Pexp_new" stand for? | Pexp_setinstvar of string * expression What does "Pexp_setinstvar" stand for? | Pexp_override of (string * expression) list What does "Pexp_override" stand for? | Pexp_lazy of expression Why does this constructor even exist? Are some specific optimizations made? | Pexp_poly of expression * core_type option What does "Pexp_poly" stand for? Phew, I am done, for now. Except one question: is the AST likely to change, or else is it likely to be standardized (so any freak like me can try her fancy syntax)?. By the way, I would like to see documentation about the AST (or other related part of Ocaml's implementation). The sources are great, and highly readable, but I am afraid of hitting a wall. Thanks Loup