Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-09-01 12:27:27 -0700 (Wed, 01 Sep 2004)
Revision: 6155
Log message:
Added rewrites for closure of let recs. Now need to write tactics.
Changes | Path |
+79 -0 | mpcompiler/mmc/core/mmc_core_closure.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-09-02 12:56:43 -0700 (Thu, 02 Sep 2004)
Revision: 6161
Log message:
This is an initial start at an alternate form of parsing.
See theories/mmc/test/mmc_grammar.ml for an example.
This version is resource-based, but I've reached an issue.
If parsing is resource-based, then it has to be delayed until
runtime. That isn't so bad, and it has the advantage of being
able to use runtime values like precedences and conversions.
However, the filter still has to participate a little, by handling
special quotations. Something like:
<:parse< text >> --> Base_parser.parse "text"
This doesn't really work--we need the resource that contains the grammar.
<:parse< text >> --> Base_parser.parse (get_parser_resource ???) "text"
The problem is the ???.
It could be:
let mark = gensym () in
Mp_resource.set_bookmark mark;
get_parser_resource (Mp_resource.find mark)
However, it is obvious that Mp_resource was not designed for
this kind of interaction.
So, we either fix Mp_resource, or push this all back into the filter.
I don't really like the latter option because we add another resource-like
thing that the filter has to manage; we have to design a new syntax for it;
filter_prog.ml gets even larger; and we have to marshal PDAs and such.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-09-02 17:27:55 -0700 (Thu, 02 Sep 2004)
Revision: 6162
Log message:
Moving Jason's parser commit to the "new_parser" branch.
Changes by: ( at unknown.email)
Date: 2004-09-02 17:27:55 -0700 (Thu, 02 Sep 2004)
Revision: 6163
Log message:
This commit was manufactured by cvs2svn to create branch 'new_parser'.
Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-09-04 13:47:21 -0700 (Sat, 04 Sep 2004)
Revision: 6173
Log message:
Updated type checking rules for let rec to exploit our new ability to lift
contexts into enclosing sequents. Also reformulated it based on comments from
Jason and Aleksey.
This also includes a non-working tactic-based version of closure conversion. I
think it's sound but I haven't managed to make it work. Really I just need to
sort out the types and it will all be fine. :-)
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-09-04 16:05:44 -0700 (Sat, 04 Sep 2004)
Revision: 6175
Log message:
Initial grammar. See theories/mmc/test/mmc_grammar.ml for an example.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-09-05 10:00:08 -0700 (Sun, 05 Sep 2004)
Revision: 6176
Log message:
Parser now rewrites in Relaxed mode so we can do capture and all that.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-09-05 10:01:52 -0700 (Sun, 05 Sep 2004)
Revision: 6177
Log message:
Remove Mmc_grammar_test
Changes | Path |
+1 -2 | mpcompiler-branches/new_parser/mmc/test/Files |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-09-05 20:30:52 -0700 (Sun, 05 Sep 2004)
Revision: 6178
Log message:
Added the grammar for MMC.
This is in Mmc_core_ast, Mmc_ext_boolean, Mmc_ext_integer.
We have 3 shift/reduce conflicts in the core grammar. Somehow I'm
having trouble turning on the debug flags, MP_DEBUG=parsegen doesn't
seem to work, so I'll leave these conflicts for later.
Also, defining grammars in the .mli file is a little awkward.
Perhaps necessary, but I'm not sure.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-09-06 16:07:21 -0700 (Mon, 06 Sep 2004)
Revision: 6181
Log message:
Added the builtin grammar. To use it, use the quotation
<:mmc< ... >> instead of <:ext< ... >>. The syntax should
be identical to the Phobos syntax at the moment.
Some important files:
core/mmc_core_grammar.mli : defines the <:mmc< ... >> start
symbol, but doesn't do much except skip whitespace.
core/mmc_core_ast.mli : defines the core grammar
ext/mmc_ext_binary.mli : defines the grammar for Booleans,
&&, ||, and conditionals.
ext/mmc_ext_integer.mli : defines the grammar for integers,
binary operators, and binary relations.
You should be able to use a quotation anywhere.
Except in the toploop:) I'll fix that in a moment.
Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-09-12 18:26:51 -0700 (Sun, 12 Sep 2004)
Revision: 6190
Log message:
Reworked so the tactic-based version compiles. Still doesn't work.
Changes | Path |
+28 -24 | mpcompiler/mmc/core/mmc_core_closure.ml |
Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-09-21 16:50:32 -0700 (Tue, 21 Sep 2004)
Revision: 6205
Log message:
Closure conversion and CPS probably work now, but it looks like closure is
either exponential or I've got an infinite loop in there somewhere...
Changes | Path |
+100 -58 | mpcompiler/mmc/core/mmc_core_closure.ml |
+31 -1 | mpcompiler/mmc/core/mmc_core_cps.ml |
+3 -0 | mpcompiler/mmc/core/mmc_core_tast.ml |
+13 -0 | mpcompiler/mmc/test/mmc_int_test.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-09-24 17:02:03 -0700 (Fri, 24 Sep 2004)
Revision: 6207
Log message:
Make sure that .omc files in MMC get cleaned up properly on "omake clean".
Changes | Path |
+3 -1 | mpcompiler/mmc/OMakefile |
Deleted | mpcompiler/mmc/arch/x86/OMakefile |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-09-24 17:13:42 -0700 (Fri, 24 Sep 2004)
Revision: 6208
Log message:
- Remove references to .cmig/.cmog since they are no longer used.
- Backport the "omake clean" .omc fix from the trunk.
Changes | Path |
+1 -1 | metaprl-branches/new_parser/filter/base/filter_cache_fun.ml |
+5 -3 | mpcompiler-branches/new_parser/mmc/OMakefile |
Deleted | mpcompiler-branches/new_parser/mmc/arch/x86/OMakefile |