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
|
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
|
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
|
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
|
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
|
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
|
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 |
Alain Frisch
|
99bc01985f
|
Fix.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13334 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 12:58:14 +00:00 |
Alain Frisch
|
e58b2cd036
|
Continue.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13333 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-04 12:54:57 +00:00 |
Alain Frisch
|
c8d3ff52a2
|
Cleanup + support attributes on type declarations (syntax: type t = ... with (:a1 expr1) (:a2 expr2) ... (:an exprn)).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13332 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-01 12:44:04 +00:00 |
Alain Frisch
|
666d6574d7
|
More uniform syntax:
Attributes:
expr (:foo expr)
type (:foo expr)
str_item ..(:foo expr)
Extension nodes:
expr (&foo expr)
type (&foo expr)
str_item ..(&foo expr)
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13331 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-03-01 09:27:14 +00:00 |
Alain Frisch
|
152255e512
|
First version with attributes and extensions on expressions, type expressions and structure items.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13330 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-02-28 16:51:59 +00:00 |
Jacques Garrigue
|
1b5d02346c
|
Fix PR#5911: substituting in submodules should not be allowed
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13282 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-01-29 00:54:06 +00:00 |
Gabriel Scherer
|
06d3dfc6fb
|
fix a benign typo in the parser, spotted by Frédéric Bour
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13265 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2013-01-20 17:20:25 +00:00 |
Damien Doligez
|
f559b6e8f0
|
better locations
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13129 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2012-12-13 12:48:51 +00:00 |
Damien Doligez
|
7e263248d7
|
fix wrong locations in AST
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13122 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2012-12-08 20:56:07 +00:00 |
Damien Doligez
|
06e853389f
|
fix missing locations
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13116 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2012-12-06 15:41:43 +00:00 |
Hongbo Zhang
|
fe894aec5f
|
Ptyp_poly consistent in both methods and binding
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13061 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2012-11-03 02:58:08 +00:00 |
Alain Frisch
|
238814e293
|
#5770: Syntax error messages involving unclosed parens are sometimes incorrect.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13019 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
2012-10-16 14:04:33 +00:00 |