this is a big (or dare I say, huge) commit that pretty much fixes every
problem I've had so far with the basic parsing
I still need to do a custom operator>> for some types but at this point
the parser goes through the entire file and prints out everything which
is a large milestone I'd say
changes in this commit:
- add SECTION_LIST for a section containing a single list of values
examples: TimingPoints, HitObjects
- improve operator>> for enums making it accept int values and fail
properly when the value is incorrect (there's a warning I need to get
rid of but it's ok for now)
- skip over blank lines: adding this single line (src/osuparser.cpp:52)
made the parser go from shitting itself to actually going through the
whole file and printing everything (with some errors but still)
- new string util: isBlank() used for the above
- new __VA_ARGS__ util: ARG_COUNT() and rename foreach.hpp to
va_args_util.hpp as that name no longer fits
I restructured the beginnings of the preprocessed files for debugging to
make the awks in the makefile not eat headers which are needed for
debugging (e.g. the FOR_EACH macro)
it's done by putting awk marker comments:
// awk stop marker (check make pp)
after the macros to be eaten by awk and before the ones we wanna keep
I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this I hate this
I might not list everything in this commit but:
- fix struct stream operators while making them a bit less convenient
- refactor some stuff around like the FOR_EACH macros
- fix 2/3 minor bugs I stumbled upon when actually trying to compile