Commit Graph

694 Commits (25815e6e77c08ba3eb273beda284ac0bc59c7ce9)

Author SHA1 Message Date
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 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 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 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 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 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 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 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 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
Hongbo Zhang 733654abab raise an error when multiple private keywords are used in type declarations
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13157 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-24 05:09:22 +00:00
Xavier Clerc b570a86fa7 PR#5119: camlp4 now raises a specific exception when 'DELETE_RULE' fails, rather than raising 'Not_found'
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13047 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-25 12:28:15 +00:00
Damien Doligez def31744f9 remove all $Id keywords
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-15 17:50:56 +00:00
Jérémie Dimino 9a718352b9 PR#5778: convert constructors on the right hand side of exception ... = ...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12994 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-09 12:42:13 +00:00
Damien Doligez 2352bbfa8b bootstrap camlp4
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12855 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-08-10 07:20:10 +00:00
Damien Doligez 997a678d5e clean up TABs and whitespace
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12799 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-30 18:04:46 +00:00
Damien Doligez 0c3a7de507 merge changes from 4.00 branching to 4.00.0 (part 1)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12784 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-26 19:21:54 +00:00
Jérémie Dimino a2ad11e98c PR#5692: fix computation of locations in the camlp4 parser
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12751 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-20 09:26:12 +00:00
Xavier Clerc da7078d07b PR#5637: invalid printing of anonymous type parameters (camlp4 revised syntax)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12668 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-09 09:43:49 +00:00
Xavier Clerc c922570d0f PR#5651: printer for abstract data type (camlp4 revised syntax)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12666 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-09 09:07:43 +00:00
Jérémie Dimino 6d308ad574 PR#5668: print using the syntax "let f x y z = ..." only when the pattern is an identifier
This form is incorrect when the pattern is not an identifier.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12656 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-04 16:29:35 +00:00
Jacques Garrigue 053f75b9ca bootstrap camlp4 to fix PR#5633 (slow parsing)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12615 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-06-19 10:50:11 +00:00
Jérémie Dimino 318f731baa PR#5646: reapply the fix for PR#5442
It was reverted when the bin-annot branch was merged

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12595 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-06-12 16:18:36 +00:00
Fabrice Le Fessant d39d43e55f merge with branch bin-annot
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12516 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-05-30 14:52:37 +00:00
Xavier Clerc 546d88ca52 PR#5620: invalid printing of type manifest (camlp4 revised syntax)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12473 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-05-23 08:19:46 +00:00
Jérémie Dimino 11741a8df7 Ensure that character literals are always escaped by the camlp4 printer.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12463 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-05-16 09:13:30 +00:00
Xavier Clerc e884da3bdc Fixes a camlp4 50x slowdown by changing the order of grammar rules.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12391 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-04-23 11:58:40 +00:00
Jérémie Dimino 7fa1f303c7 Set the revised syntax of GADTs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12346 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-04-11 21:34:51 +00:00
Jérémie Dimino ef8d15d4a1 PR#5579: always create a new token stream before parsing a phrase so new filters are applied
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12336 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-04-10 21:18:00 +00:00
Damien Doligez 6c24f4f90b merge version 3.12 from 3.12.1 to r12205
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12210 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-03-08 19:52:03 +00:00
Jérémie Dimino 62fc590a47 PR#5495: add "or" to the list of infix keywords in the camlp4 parser
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12162 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-17 12:52:04 +00:00
Jérémie Dimino 8c478a926a PR#5481: update camlp4 ast magic numbers and add a comment before the ast definition
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12155 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-15 09:30:45 +00:00
Damien Doligez d4522f062c Change "Ocaml" to "OCaml" everywhere
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12152 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-13 17:48:41 +00:00
Damien Doligez e4d22f63b7 PR#5159: better documentation of locations
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12150 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-13 17:45:53 +00:00
Alain Frisch ff476d8431 Merge the unused_declarations branch.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12035 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-18 09:15:27 +00:00
Alain Frisch c45bcb892d Synchronize with trunk.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/unused_declarations@12034 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-18 08:31:11 +00:00
Damien Doligez 25065da568 PR#5387: typo in commit 11986
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12012 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-10 20:19:33 +00:00
Jérémie Dimino 76ff25a586 PR#5456: replace __LOCATION__ after macro expansion and add LOCATION_OF
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11992 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-05 14:33:56 +00:00
Jérémie Dimino b0cf87a335 PR#5231: fix parsing of <:str_item< type t = $x$ >>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11990 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-05 10:29:11 +00:00
Jérémie Dimino 0c37ea4c27 PR#5387: avoid extra Ast.CrNil and Ast.CgNil
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11987 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-05 09:43:50 +00:00
Jérémie Dimino 01b9028cb0 PR#5387: avoid extra Ast.StNil and Ast.SgNil
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11986 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-01-05 09:35:47 +00:00
Jérémie Dimino 6075cd4c6d PR#5442: use safe_string_escaped instead of String.escaped
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11984 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-30 20:00:14 +00:00