Alain Frisch
|
0b9347f482
|
Represent exception declarations as constructor declarations in the Parsetree.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13442 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-25 15:49:10 +00:00 |
Alain Frisch
|
dd61fb5e55
|
Represent label and constructor declarations as records in the typedtree. Also keep return type for GADT constructors.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13441 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-25 14:56:56 +00:00 |
Alain Frisch
|
5c98dd91fe
|
Starting to keep attributes in the typedtree.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13440 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-25 14:16:07 +00:00 |
Alain Frisch
|
f85f1e2759
|
Get rid of alternative syntax for '(module...)'.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13420 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-22 11:30:28 +00:00 |
Alain Frisch
|
b9ad592ac0
|
Infix syntax for attributes/extension nodes restricted to expression constructions starting with a (combination of) keywords.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13419 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-22 11:25:52 +00:00 |
Alain Frisch
|
734a4b6816
|
Fix example.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13418 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-21 08:53:42 +00:00 |
Alain Frisch
|
b0987fd693
|
Attributes on expresions (etc) are now stored in the expression record, to facilitate pattern matching on structured fragments of AST while ignoring attributes. Introducing a new Ast_helper module to help creating AST fragments.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13381 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-08 14:59:45 +00:00 |
Alain Frisch
|
556d070fdb
|
Adapt examples.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13380 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-08 09:36:55 +00:00 |
Alain Frisch
|
7c4129960b
|
Adapt examples.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13379 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-08 09:34:02 +00:00 |
Alain Frisch
|
a483bbaaf4
|
Experimenting with alternative syntax for extension nodes (as an annotation on the opening keyword/delimiter).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13378 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-08 09:17:30 +00:00 |
Alain Frisch
|
ab2a491ba0
|
Support attributes on opening delimiter/keyword for all kinds of expressions.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13377 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-08 08:42:53 +00:00 |
Alain Frisch
|
dec300a026
|
Allow seq_expr, not only expr as argument of attributes/extension nodes. This allows us to write [%do a; b; c <-- d; f c; ...].
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13376 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-08 08:18:01 +00:00 |
Alain Frisch
|
a9148b249e
|
Typo.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13375 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 15:33:13 +00:00 |
Alain Frisch
|
cbf93255c5
|
Doc.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13374 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 15:29:30 +00:00 |
Alain Frisch
|
07e81b2f0d
|
Examples. Also accept uppercase idents (and some keywords) as ids for attributes/extension nodes.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13373 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 15:29:11 +00:00 |
Alain Frisch
|
eaf9e3744a
|
It is now possible to start a signature or a structure with a ';;' token and to have two successive ';;' tokens.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13372 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 14:15:23 +00:00 |
Alain Frisch
|
72a638757c
|
Stand-alone ("floating") sig_item/str_item attributes now use the
standard syntax for item attributes. They are recognized at the
beginning of the signature/structure and after a ";;" token.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13371 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 13:46:44 +00:00 |
Alain Frisch
|
378c1d92df
|
Simplify.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13370 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 13:13:36 +00:00 |
Alain Frisch
|
a555c12f52
|
Support attributes on recursive modules.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13369 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 13:07:32 +00:00 |
Alain Frisch
|
63b229658e
|
Remove prefix syntax for attributes.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13368 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-07 13:00:01 +00:00 |
Alain Frisch
|
076eca73cc
|
Alternative syntax for some constructions starting with a keyword.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13364 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 14:53:39 +00:00 |
Alain Frisch
|
9f8b148761
|
More doc.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13363 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 14:29:04 +00:00 |
Alain Frisch
|
8055753e58
|
Typo.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13362 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 13:51:39 +00:00 |
Alain Frisch
|
97c5f1a253
|
Attributes on label in record type declarations.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13361 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 13:51:18 +00:00 |
Alain Frisch
|
cb3b398308
|
Document the changes on the branch.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13360 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 12:57:56 +00:00 |
Alain Frisch
|
d50038cae7
|
Attribute has structure/signature item.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13359 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 12:27:32 +00:00 |
Alain Frisch
|
2cf65c8c85
|
Record for module type declarations.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13358 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 12:14:02 +00:00 |
Alain Frisch
|
24a0c6eb0e
|
Name is part of the value_description record.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13357 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 12:00:18 +00:00 |
Alain Frisch
|
241abe55e6
|
Type name is part of the type declaration record.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13356 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 11:47:59 +00:00 |
Alain Frisch
|
59bdf321d3
|
Switch Pstr_modtype argument to a record type.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13355 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 10:49:44 +00:00 |
Alain Frisch
|
a79811afe9
|
Finish attributes on module/recursive modules in structures.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13354 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-06 10:12:21 +00:00 |
Alain Frisch
|
d32b19008a
|
Parse recursive module as standard modules, and check in the type-checker that an explicit type is provided. (Unfinished.)
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13353 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 16:50:05 +00:00 |
Alain Frisch
|
e0045d42dd
|
Parse attributes on modules/recursive modules/module types in structures (currently not kept in Parsetree).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13352 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 12:49:27 +00:00 |
Alain Frisch
|
cc70961d4f
|
Support item attributes on exn rebind.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13351 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 12:44:40 +00:00 |
Alain Frisch
|
b01b7305bd
|
Put name in the exception_declaration record.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13350 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 12:37:17 +00:00 |
Alain Frisch
|
8823b9dd6c
|
Item attributes on external declarations in structures.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13349 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 12:17:12 +00:00 |
Alain Frisch
|
42a33460ed
|
Item attributes on classes.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13348 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 12:06:38 +00:00 |
Alain Frisch
|
7de8a9688e
|
Allow to put 'item' attributes before the 'type' or 'module rec' keywords. They apply to the first item in the declaration.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13347 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 11:51:51 +00:00 |
Alain Frisch
|
db579b0a1e
|
Extension as structure/signature items [%%lid expr].
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13346 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 11:46:25 +00:00 |
Alain Frisch
|
a64152ae6e
|
Use [%lid expr] syntax for extensions.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13345 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-05 11:30:15 +00:00 |
Alain Frisch
|
8461db39f1
|
Attributes on module/module type/recursive module declarations in interfaces.
Module:
[^^id expr] [^^id expr] ...
module X : S
[@@id expr] [@@id expr] ...
Module types:
[^^id expr] [^^id expr] ...
module type X = S
[@@id expr] [@@id expr] ...
Recursive modules:
module rec [^^id expr] [^^id expr] X1 : S1 [@@id expr] [@@id expr] ...
and [^^id expr] [^^id expr] X1 : S1 [@@id expr] [@@id expr] ...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13344 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 17:39:07 +00:00 |
Alain Frisch
|
a5059464fe
|
Attributes on open/include in signatures.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13343 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 16:36:32 +00:00 |
Alain Frisch
|
46c790a663
|
Attributes on exception declarations.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13342 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 16:20:49 +00:00 |
Alain Frisch
|
2825f94d5b
|
Attributes on value declared in signatures.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13341 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 16:03:20 +00:00 |
Alain Frisch
|
a3f6606793
|
Prefix attributes for 'items'.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13340 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 15:53:43 +00:00 |
Alain Frisch
|
f8706985c2
|
Adding prefix syntax for attributes [^id expr] ...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13339 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 15:48:24 +00:00 |
Alain Frisch
|
5f0aead005
|
Adding attributes on constructor declarations (type t = A [@id expr] | B [@id expr] of ...), and switch to a record type to represent those constructor declarations in the Parsetree.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13338 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 15:35:47 +00:00 |
Alain Frisch
|
70bc46ef0c
|
New syntax:
Attributes: ... [@id expr]
Extension: [#id expr]
Attributes on items: ... [@@id expr]
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13337 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 15:00:30 +00:00 |
Alain Frisch
|
be76a15a6b
|
Attributes/extensions as module types.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13336 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 14:11:15 +00:00 |
Alain Frisch
|
a2acbc8d3b
|
Adding extension/attribute on patterns.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13335 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 13:52:23 +00:00 |