path: root/parse
AgeCommit message (Collapse)Author
2015-05-09Refactor code to add jump tables, and prepare to generate them.Ori Bernstein
2015-05-08Print unlenghted array types correctly.Ori Bernstein
2015-05-08Use before def checking is closer to working.Ori Bernstein
Reduce spurious errors.
2015-05-08A few more fixes for dataflow checks.Ori Bernstein
2015-05-08Get closer to a working use-before-def check.Ori Bernstein
2015-05-07Add 'undef' operator.Ori Bernstein
Marks values as undefined, useful for reaching defn dummy analysis.
2015-05-06More work towards getting undefined variables to be defined.Ori Bernstein
2015-05-06A huge amount of work on checking.Ori Bernstein
We now check for return types, and have a partly fleshed out use-before-def analysis.
2015-05-06Compile error on reaching end of func without return.Ori Bernstein
2015-05-04Make fsel code more generic.Ori Bernstein
2015-05-04Fix a bug detected by scan-build.Ori Bernstein
2015-05-03Fix exports of specialized types.Ori Bernstein
We had some bugs when exporting a type that had a specialization, eg, if a function specialized std.htab, so that one of it's args was: std.htab(byte[:], byte[:]) would conflict with the very generic definition it was using in some circumstances.
2015-04-30Don't stop inferring structs early.Ori Bernstein
We were erroring where we should have been leaving things alone.
2015-04-30Improve error messages more.Ori Bernstein
- Consistency in spelling/capitalization. - More context about conflicting declarations.
2015-04-30Improve error messages for membership failures.Ori Bernstein
2015-04-29Add regex parsing to libregex.Ori Bernstein
I'd like to use the same regex parser for source indexing and parser generation.
2015-04-29Resolve the type on array indexes.Ori Bernstein
If we never used the type, we never resolved it, which means we never set the type on the literal. This can cause some potential type errors. This resolves the type when doing the substitutions, in case we didn't already get to it.
2015-04-26Fix typo.Ori Bernstein
stray ':' slipped in.
2015-04-25Thread line numbers through to errors.Ori Bernstein
This means we can go to the line with the error.
2015-04-23Give more useful error on failing to find matching pkg.Ori Bernstein
It used to be that to find the matching use package, you had to poke around in a debugger with trial and error.
2015-04-21Move tests from test/ directory to libstd/test/Ori Bernstein
Use mbld to run this shit.
2015-04-19Improve error messages.Ori Bernstein
2015-04-19Fix tests in non-mbld world.Ori Bernstein
2015-04-19Add support for 'dep=' in mbld genOri Bernstein
This means that mbld code will regenerate generated targets if the inputs aren't up to date.
2015-03-28Tweak the ABI for type information.Ori Bernstein
2015-03-26Change ABI version.Ori Bernstein
2015-03-26akeOri Bernstein
2015-03-26Generate type descriptions for valists.Ori Bernstein
the formatting test is still broken, but everything else seems to be working.
2015-03-19Generate type descriptions for various types.Ori Bernstein
On our way to sane printf()!
2015-03-10Fix recursive case.Ori Bernstein
We don't want to infinitely recurse -- pass the visited set down in call cases.
2015-03-10Implement type description dumping.Ori Bernstein
2015-03-09Give better context for errors in match statements.Ori Bernstein
In the past, we gave bad context for match statements type errors, giving the error on the match line. Eg: var x : byte var y : byte[:] match y | ...: | foo: x = 4oo ;; would error on 'match' and not on 'foo'. This simple change solves that prolem by passing the pattern value as context.
2015-03-09Put a version in the usefile.Ori Bernstein
Give an error instead of a crash on version changes.
2015-03-09Make type substitution more robust.Ori Bernstein
Break out Tyname into Tygeneric and Tyname. Tygeneric acts like a function returning a fully substituted Tyname.
2015-03-08Add 'tygeneric' specifier.Ori Bernstein
2015-02-21Error out on mismatched indexable types.Ori Bernstein
foo[3] and foo[:] should not be compatible while inferring.
2015-02-20Allow unlengthed arrays within structs.Ori Bernstein
Added type[...] syntax to tell the compiler not to check the length of these arrays. The size of this array is 0, as far as the compiler is concerned. This is only allowed within structs. This allows us to do 2 things: - First, it allows us to handle the C idiom which puts a zero-length array at the end of a struct to store extra data, as follows: type trailing = struct length : byte data : byte[...] ;; - And, as a side effect, we can also fake out C style unions as follows: type withunion = struct a : foo[...] b : foo[...] c : foo[...] pad : byte[NBYTES] ;; This is ugly and error prone, and perhaps should be deprecated.
2015-02-19Remove spurious newline.Ori Bernstein
2015-02-19Fix formatting type parameters.Ori Bernstein
This solves a segfault.
2015-02-09Print error when we can't find symtab to merge into.Ori Bernstein
2015-02-07Fix typo in op strings.Ori Bernstein
2015-01-25Clear structs.Ori Bernstein
When creating stack structs, clear them. TODO: only clear uninitialized values.
2015-01-25Allow trailing commas in seq literals.Ori Bernstein
struct foo = [.x=1,.y=2,.z=3,] now works.
2015-01-25Error out with invalid specializations.Ori Bernstein
type t(a, b) = ... var x : t(a) will now error correctly.
2015-01-20Add missing stdarg.h includes.Ori Bernstein
2015-01-20Add support for constant union initializers.Ori Bernstein
Oops, that was broked.
2015-01-17Change biding of union constructors and casts.Ori Bernstein
2015-01-15Respect outfileRyan Gonzalez
I'm not sure what Myrddin's contributing guidelines are, so I'm doing things the hg-git way of sending the patch to the mailing list. This is really simple: it just actually uses outfile. If someone specifies an output file, then it will be used as the output for the object file; the output's basename will also be used for the use file and the assembler file (if -S was passed). Another patch is attached that fixes a slight logic error in the man page that confused me very much. :)
2015-01-08Handle errors better.Ori Bernstein
2015-01-08Look up declaration namespaces.Ori Bernstein
(This should be moved into getns()...)