Working on removing inouts and hi-z
Mend typo and type bus correctly
No enable for Decode
Remove more tristates ; runs on s6
Merge branch 'no-z' into develop
Bump ISE version to 14.6
Whitespace changes I cannot get rid of
Remove extraneous halts and startup delays
Cosmetics
Pin eib_halt when no INTERRUPTS
Register instruction on i_data

If I do this in s5, I get failing hardware ; introducing another
pipeline stage for now. Post-PAR timing gives 19.394ns, not tested.
At this point the multiplier is the best opportunity for speed
improvement, but for this design it's probably still not worth
reworking.
Use flex start conditions to disambiguate grammar

Previously, this would not parse, even though it is technically
unambiguous :

	a<-b<-3 // meaning a <- b < -3

because the second `<-` was interpreted as an arrow. Now we push and pop
flex states (specifically the `needarrow` state) in the bison parser to
mark when we expect an arrow.
Use literal string tokens for readability
Simplify and correct generated code make rules
Improve lexer readability and state usage

Instead of switching states with BEGIN, use yy_{push,pop}_state()
for comment and character states. Added test cases for comments and
character literals.

Some cosmetic changes as well.
Cosmetics and minor tweaks to lexer
Extend string and character parsing

Now \0 and \" are recognised in character escapes, and character escapes
are recognised inside strings. There are a few warts : \0 is swallowed
because it is returned as its own STRING, which gets strlen() called on
it. Pass back length instead of calling strlen() ever. Also, separate
STRING tokens are returned when one string should be built up in the
lexer in case it fails to parse eventually.
Use literal string tokens more consistently
Force separation of instructions with ';' or '\n'

The grammar doesn't require it, but it's a time-honoured precedent and
one that future-proofs us a bit.

Ignore newlines inside directives so that existing code in forth/ can
continue to put separate words on separate lines (and in general, this
is a reasonable constraint to relax).
Working on generalising string code

Now strings.tas encodes an embedded NUL character properly.