- forgot to rename these header guards when i ported the lexer from an earlier project of mine

- parser now processes commands.def properly

- added .gitignore

- various corrections

- removed bots.h

- renamed files to .cxx, restructured parser.cc

more rework

- *hot stuff coming through*

- major refactoring begins

- moved sources to src/, migrated to cmake

test

So it turns out that the functions I thought were taking float are actually taking int. So, with the only reason for float removed, the float type is removed as well. I'd rather have fixed point anyway.

Added constants, these are defined with const, take their value immediately and are replaced out with their value when used. The strlen operator can be used to get a string constant's length.

Some rework on variables

Good bunch of changes

Don't try to read expressions as statements. That yields nothing useful and inevidently bombs out anyway.

Fixed: parser allowed command calls with one too few arguments

- Fixed error display - peeking was pushing recorded `cursor` position out of sync

renamed to undefined labels, not unmarked labels...

goto is now allowed to reference labels that will get defined afterwards.

only print revision in version header if it's non-zero

Added support for continue-statements

Renamed 'block stack' to scope stack for more clarified code..

Fixed: else was alloed even without if strictly preceding it

Added support for else-statements

Added support for the ternary operator.

Added floating point support for the most part. However, decimals are somehow lost during a cast..

Added support for operators &&, ||, &, | and ^

Added ! operator support. It's not really an operator since it's just checked at the beginning of the expression value but eh.

Added <<= and >>= operator support. Zandronum does not provide these, thus they are translated to their longer forms by the compiler. Also aded << and >>.

Added default label for switch

rename ObjWriter::RecordBuffer to SwitchBuffer, as it is designed specifically for switch and will break if used genericly

(0) -50 -32 +32 +50 tip

mercurial