Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-16 15:04:43 -0700 (Sat, 16 Apr 2005)
Revision: 860
Log message:
Preparing to fix the problem with regular-expression arguments
http://cvs.cs.cornell.edu:12000/bugzilla/show_bug.cgi?id=315
Changes | Path |
+8 -8 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
+12 -3 | omake/src/shell/omake_shell_job.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-16 15:13:43 -0700 (Sat, 16 Apr 2005)
Revision: 861
Log message:
Removed argument info, since we are planning to do it differently.
Changes | Path |
+20 -99 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-16 16:23:18 -0700 (Sat, 16 Apr 2005)
Revision: 862
Log message:
Minor change, this converts states to use the HashCons module
form performance.
Changes | Path |
+322 -76 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 08:16:52 -0700 (Sun, 17 Apr 2005)
Revision: 863
Log message:
This adds the argument "registers" to the DFA. Untested,
and I haven't added argument extraction yet.
Changes | Path |
+259 -183 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 08:41:48 -0700 (Sun, 17 Apr 2005)
Revision: 864
Log message:
Added handling for final states.
Changes | Path |
+28 -12 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 09:11:34 -0700 (Sun, 17 Apr 2005)
Revision: 865
Log message:
Added argument extraction.
Changes | Path |
+56 -6 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
+11 -20 | omake/tests/regex/Test |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 09:36:15 -0700 (Sun, 17 Apr 2005)
Revision: 866
Log message:
This appears to be working, so after some clean up I'll commit it.
TODO: add "earliest-match" arguments so that we can do searching
in linear time.
NOTE: This doesn't include StepIII in Aleksey's description (bug #315),
because I don't understand the need for it.
The consequences are that the semantics are last-match. For example:
match $'fooXbooXmooXgoo'
case $'\((\(.*\)X)*\)'
println($(string $*))
prints
fooXbooXmooX moo
Changes | Path |
+1 -1 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
+56 -0 | omake/tests/regex/Test |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 11:06:53 -0700 (Sun, 17 Apr 2005)
Revision: 867
Log message:
This adds initial support for searching in linear time (but the
search function hasn't been updated to use it yet).
The idea follows our original plan, that the search for regular
expression "r" is a new expression ".*#r" where '#' is used to
in this case to indicate shortest match.
However, a general solution for shortest-match based purely
on argument handling is dubious. For example, in this case,
a naive solution would always search to the end-of-file.
The solution here is to prune all NFA states that represent
the initial search whenever a final state is reached for the
first time.
Changes | Path |
+148 -62 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 11:29:03 -0700 (Sun, 17 Apr 2005)
Revision: 868
Log message:
This is the linear-time version of the search. This changes
the semantics of the search function. I think the old one, if
it failed, would return the text to the eof. This one just
fails, so I'll have to see if these other files need to be
updated.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 11:51:18 -0700 (Sun, 17 Apr 2005)
Revision: 869
Log message:
Fixed some typos so searching actually works. It is currently
longest-match, so this will have to be fixed.
Changes | Path |
+7 -4 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
+7 -1 | omake/tests/regex/Test |
Added | omake/tests/regex/Test2 |
Properties | omake/tests/regex/Test2 |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 17:43:19 -0700 (Sun, 17 Apr 2005)
Revision: 870
Log message:
Added a very simple form of precedences to get shortest
match on the search prefix.
Changes | Path |
+21 -1 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-18 12:43:35 -0700 (Mon, 18 Apr 2005)
Revision: 871
Log message:
Now that we have separate arg registers, we can be more aggressive
about computing the epsilon closure through argument calculations.
This is a pre-commit before I delete some of the code.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-18 12:56:09 -0700 (Mon, 18 Apr 2005)
Revision: 872
Log message:
Deleted the unnecessary code, and simplified arg representation a bit.
Changes | Path |
+37 -85 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
+9 -3 | omake/tests/regex/Test3 |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-19 12:03:29 -0700 (Tue, 19 Apr 2005)
Revision: 875
Log message:
Added Lexer.searchto function, for matching against delimiters.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-19 12:16:13 -0700 (Tue, 19 Apr 2005)
Revision: 876
Log message:
The clause_id was selected incorrectly.
Changes | Path |
+12 -12 | libmojave-branches/lexer_args_correction/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-19 12:18:23 -0700 (Tue, 19 Apr 2005)
Revision: 877
Log message:
Merged the lexer_args_correction branch.
Changes | Path |
+877 -411 | libmojave/util/lm_lexer.ml |
+11 -1 | libmojave/util/lm_lexer.mli |
+2 -2 | omake/src/build/omake_builtin_base.ml |
+21 -21 | omake/src/build/omake_builtin_io_fun.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-21 13:20:03 -0700 (Thu, 21 Apr 2005)
Revision: 889
Log message:
Fixed a subtle error regarding shortest match.
When a final state is reached, any NFA component of the DFA
state should be removed if either of the following hold:
1. the state is part of the search prefix
2. the state came from a state in the search prefix, unless
it is the final state being considered.
Previously, we did part 1, but not part 2.
Changes | Path |
+14 -9 | libmojave/util/lm_lexer.ml |
+0 -0 | libmojave/util/lm_parser.ml |
Binary | omake/tests/awk/Awk.in |
Deleted | omake/tests/awk/Test |
Added | omake/tests/awk/Test1 |
Properties | omake/tests/awk/Test1 |
Added | omake/tests/awk/Test2 |
Properties | omake/tests/awk/Test2 |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-04-27 19:25:09 -0700 (Wed, 27 Apr 2005)
Revision: 911
Log message:
Make sure that Lm_symbol.string_of_symbol and Lm_symbol.add provide a
bidirectional 1-to-1 mapping between strings and variables. In other words
"Lm_symbol.string_of_symbol o Lm_symbol.add" and "Lm_symbol.add o
Lm_symbol.string_of_symbol" should both be identity functions.
Changes | Path |
+11 -7 | libmojave/util/lm_symbol.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-29 12:44:42 -0700 (Fri, 29 Apr 2005)
Revision: 912
Log message:
Made some changes to the Map class.
The keys are now "simple" values, not just strings. These
include integers, floats, strings, arrays of simple values,
files, and directories.
Only the Map class has the map functions defined. If you
want to have, say, a File that also includes a Map,
create a subclass that extends both File and Map.
The literal keys now have the form $|key...|. This works
both for definitions and uses. The usual modifiers are
allowed $,|key| and $`|key|.
X. =
extends $(Map)
$|key 1| = 1
$|key 2| = $|key 1| boo
$|key 2| += foo
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-04-30 15:24:33 -0700 (Sat, 30 Apr 2005)
Revision: 920
Log message:
When splitting a sequence into a list of values along the space boundaries, do
not stringify primitive values (such as files and directories). This partially
solves bug #443.
Changes | Path |
+57 -112 | libmojave/stdlib/lm_string_util.ml |
+2 -2 | libmojave/stdlib/lm_string_util.mli |
+2 -37 | omake/src/eval/omake_eval.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-30 16:52:34 -0700 (Sat, 30 Apr 2005)
Revision: 921
Log message:
Working on outstanding issues for Win32.
This is a fix to be more careful about spaces in filenames,
so that placing ocaml in
C:\Program Files\Objective Caml
actually works. This adds the $(quote-argv ...) function that
quotes an array in a way that the command-line parser can recover
the argv string. This allows include directories with spaces in
a -pp option.