| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
| |
Plan is to give colm language-independent code generation features taken from
ragel. We first merged ragel and colm, and then forked ragel off, leaving
behind what will go into colm. Ragel gets a dependency on the colm package.
|
| |
|
|\
| |
| | |
add flag to support standalone executables
|
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
Rather than using the --transform argument to tar to remove the .pack extension
from the individual files when creating the tarball, simply rename the files
after unpacking. The individual files will then live in the tarball with the
.pack extension, but that's okay. The --transform argument is not available on
osx tar.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Changed the calling convention for colm-wrap (formerly colm-pack) so that we
can substitute the colm program, once packing is implemented there. Makes the
new wrapper args compatible with the existing args for the colm binary.
refs #85
|
|
|
|
|
| |
Sending a newline means a missing ; results in the error getting attributed to
the next line. refs #103
|
|
|
|
| |
refs #103
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The colm language has an ambiguity between literal concatenations and distinct
statements, where the first ends in string/accum/cons/pat and the second is a
bare send. For example:
match P
"a b c d"
"e f g h"
Warn on some of these by checking for an outdent (relative to the first
component) on top level concatenations. If the user does not outdent between
separate intended statements we cannot help with this check.
refs #95
|
|
|
|
|
|
|
| |
In 900189a4d23f0180970f22479f44377973a2d330 we added an option to hack the
parsing of hex literals to allow ranges that cross zero. This was necessary
when alphtype was signed. Moving to an unsigned type eliminates the need for
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switching to unsigned so we can reference chars with the high bit set in the
way that is common when discussing utf and unicode: using hex chars. Negative
values are really uncomfortable and don't lend themselves to specifying ranges.
This change is for the parser and stream/input code only. The collected tree
data still uses char, which makes it convenient to extract the data from a
top-down or bottom-up load. If we change the tree type we need to cast the
pointers all over the loading code.
refs #104 refs #97 refs #81
|
|
|
|
|
| |
We eliminated the use of this field some time ago, but never removed the field
from the struct.
|
| |
|
|
|
|
| |
refs #97
|
|
|
|
| |
refs #97
|
|
|
|
| |
refs #97
|
|\
| |
| |
| |
| | |
Pushing forward with the literal-concatenation patch. This brings back lists of
literals strings at the top level of strings, constructors and patterns.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit brings back string concatenations in match/cons/string literals at
the top level. It does not bring back concatenation of [] lists. For example,
you can write:
match Foo
"hi
"there
BUT NOT:
match Foo
[Hi] [There]
The concatenation (of both forms) was removed when bare sends were added, due
to the ambiguity created. However, removing these concatenations has proven
quite annoying.
This change re-introduces the ambiguity, which maybe we should do something
about by detecting when it is likely via mis-alignments of the strings, or
making some other change to sends.
refs #95
|
| | |
|
| |
| |
| |
| | |
refs #85
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Other updates to colm/Makefile.am: don't depend on gen dir to have it built,
causes rebuilding when new files go in. Do it the old way using mkdir -p gen in
the rule that puts files there.
Also colm-pack.sh needs to go into EXTRA_DIST.
refs #85
|
| |
| |
| |
| |
| |
| |
| | |
Using a wrapper around colm that tars up output files into a pack. The same
wrapper can be used to extract the output files one at a time. Using -p to
specify the pack file name. Using the wrapper in the building of colm and
ragel. refs #85
|
| |
| |
| |
| | |
refs #102
|
| |
| |
| |
| |
| | |
Containing package (colm-suite) will start at version 1. This first release
will contain colm 0.14 and ragel 7.0. refs #101
|
| |
| |
| |
| |
| | |
Was not possible to set a named RHS element in a tree. Added the _WC version
and stubbed the others.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removed the string concatenation from hello world examples (even though we want
to bring it back eventually).
Updated assign example so it does not use named lexical regions. Also removed
the overlap between id and number, which resulted in the id form of number
never matching. Added some error handling.
refs #94
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1. If there are no expected output sections then default a section to empty and
run at least one pass.
2. If the compilation failed then report this explicitly in the diff. This
avoids the case accidentally passing due to an empty expected output.
refs #96
|
| |
| |
| |
| |
| | |
Backtracking in across literal blocks had a minor fault in constructors and was
fully missing from patterns. Both fixed with this commit. refs #86
|
|/
|
|
| |
The implementation allows only one value returned so we must break.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The string class is no longer containing uints, now signed. Convert the input
strings to vectors of uint8s, since the julia code generator currently supports
only uint8.
Use numerical representation of 'a' since we have no way to separate single
lits from double lits and cast them in the julia test case translator
Don't try to construct AbstractString, use String.
Array constructor Array{Int, 1}(undef, 20) must take undef as first arg.
Verify we have julia 1.0 or later in configure script.
refs #91
|
| |
|
|
|
|
|
| |
If ulimit -a is used, javac may not run. Added a configure check to verify it
runs. refs #92
|
|
|
|
|
| |
Not doing these in colm. Relying on th existing correct implementation. Also
removed the naming conflict between left and right recursion.
|
|
|
|
|
|
|
|
|
|
|
| |
Redid the sublist implementation in colm such that the new produciton is placed
immediately above the place where it it was first referenced. Works better in
the face of of namesapce usage
Also removed the repeat implementations. These are already correct in the C++
program so no sense in redoing them. This is in line with the notion that we
can use colm transformations for new language features, before they are
eventually moved into the main program.
|
|
|
|
|
| |
These are allowed, but ignored in bootstrap0 and bootstrap1. We can then use
them in the rewriter to log changes we made.
|
|
|
|
|
|
| |
Every class representing Colm types has a program and tree pointer and some
common functions. Moving this out allows us to pass the common base to the
repeat iterator and eliminate the first argument to the iterator.
|
|
|
|
|
|
| |
The Julia language has changed enough to break our tests. Disable them for now.
refs #91
|
|
|
|
|
| |
This flag is not for production building. Bootstrapped build should always be
used.
|
|
|
|
|
|
|
|
|
|
| |
Added an iterator for repeats that is independent of left/right recursion.
Using it in colm load and tests. Allows us to remove the special case for
repeat/list types in the export.
The new iterator is implemented as a non-recursive generic tree iterator.
refs #90
|
| |
|
|
|
|
|
|
| |
Also moved the implementation to C++ because for the time being we need to generate
an appropriate iterator in the export interface. Need a genereric repeat
iterator to avoid this situation.
|