- 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

Added switch support... fixed more problems with marks in the process

some cleanup

Expressions now allow multiple operators

Removed mark types as they served absolutely zero purpose

Added do-while loop support

Added for-loop support

(0) -50 -30 +30 +50 tip

mercurial