Commit graph

101 commits

Author SHA1 Message Date
3671ce3a25
add .cache to gitignore 2024-07-16 10:48:25 +02:00
53dbb04cf9
get rid of default enum parsing warning 2024-07-16 10:47:46 +02:00
540d9faee4
switch to clang++ and add bear to shell 2024-07-16 09:39:46 +02:00
24bb5e14ec
add compile_commands.json to gitignore 2024-07-16 09:39:03 +02:00
311d6274b5
switch from import to callPackage in nix 2024-07-16 09:35:09 +02:00
6506beba34
use correct license in nix package 2024-07-16 09:15:36 +02:00
e531ce1e44
update nixpkgs to unstable 2024-07-16 09:13:50 +02:00
93c1362862
force run tests when building with the default target 2024-04-30 12:33:02 +02:00
a9d4660aae
return the amount of tests failed after them 2024-04-30 12:32:45 +02:00
1b567e3aef
reset countdown after each assert 2024-04-30 12:20:34 +02:00
396d9418fe
add initial input stream op tests 2024-04-30 12:19:50 +02:00
39e3b16568
put each test in separate scope to avoid redefinition 2024-04-30 12:18:43 +02:00
5443eeb7b9
fix test running by adding semicolon in foreach 2024-04-30 12:13:53 +02:00
c9c7a4f408
add semicolons in example test 2024-04-30 12:09:55 +02:00
d970e74ce3
clean up (?) the makefiles 2024-04-29 19:45:45 +02:00
0491c3655a
fix make by removing vars in test makefile 2024-04-29 16:17:10 +02:00
086e841110
make the test name a string
this is to avoid treesitter shitting itself
2024-04-28 18:52:13 +02:00
119a024045
add initial test work 2024-04-28 17:43:53 +02:00
edeb39adc2
small target change for object files 2024-04-28 01:48:35 +02:00
9e92f49757
extract parsing logic into separate generic macros 2024-04-28 01:30:58 +02:00
46299a089b
add HitSample 2024-04-27 14:15:09 +02:00
6ff75669a0
clean up macros in the osuparser header 2024-04-26 20:48:46 +02:00
7c2d4da6e2
make main print available songs by default 2024-04-26 20:24:09 +02:00
3aa342d46b
name section structs in Difficulty 2024-04-26 20:00:24 +02:00
e139115ede
tick section lists off of TODO 2024-04-26 19:50:14 +02:00
b978fb2288
fix pretty much everything, read description
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
2024-04-26 19:05:35 +02:00
5e0eb7efe3
fix currentSection parsing 2024-04-26 12:10:17 +02:00
b8512cd486
set the line length in list macros properly 2024-04-26 11:19:29 +02:00
db6bd63013
add dev instructions 2024-04-25 23:31:09 +02:00
624431b72e
add some todo items 2024-04-25 23:26:56 +02:00
574b8aed21
simplify nix instructions 2024-04-25 23:20:07 +02:00
e693260eff
fix difficulty.hpDrainRate's prefix 2024-04-25 22:38:12 +02:00
725cae21eb
handle parsing ints to enums 2024-04-25 22:35:14 +02:00
ad03011871
create separate header for string util functions 2024-04-25 22:34:51 +02:00
9a75404847
fix setting the default value
basically before this commit, the default value was set *before* the
prefix check which means it was set on each line instead of only when
the current var is being parsed (as it should)
2024-04-25 22:32:16 +02:00
e8f050ad18
add missing push_back in VAR_LIST 2024-04-25 19:50:18 +02:00
bd0b1f3e97
(probably partly) fix list parsing implementations 2024-04-25 19:17:49 +02:00
a918f155b4
update separators to be chars instead of strings 2024-04-25 19:17:23 +02:00
a95e79ac35
Revert "remove redundant struct"
This reverts commit d0b5c4d514.
2024-04-25 17:46:08 +02:00
b710520724
get rid of config.hpp in osuparser.hpp when pp debugging 2024-04-25 12:14:41 +02:00
d0b5c4d514
remove redundant struct 2024-04-25 11:53:51 +02:00
19ff37e7b8
massively improve the awk fuckery
thank you krizej I actually forgot about g++ -D
2024-04-25 11:49:09 +02:00
cc538d835e
remove broken list parsing implementations 2024-04-25 00:36:30 +02:00
e177b7231f
add missing prefix parameter 2024-04-24 23:58:31 +02:00
ff597fdc23
improve the makefile awk comment 2024-04-24 23:41:45 +02:00
c967207520
awk marker comments to save necessary macros
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
2024-04-24 23:36:25 +02:00
e1dbdf5228
speed up make pp from 23 seconds to almost instant
this is done by removing all headers from the top of the file using that
awk written by the amazing Jappie3 from the hyprland discord

g++ -E itself was pretty fast but clang-format took a while to format a
52k line file (wonder why), removing std makes the files considerably
smaller and makes the whole operation almost instant

one small issue is currently the script removes every single header
unless it hits something else - not ideal since my own headers will get
wiped too and in the preprocessed output not all macros will be
evaluated (e.g. FOR_EACH from for_each.hpp in config.hpp)
2024-04-24 23:25:15 +02:00
3c4f5ababa
rename make preprocess to make pp
thanks for the suggestion krizej
2024-04-24 20:14:35 +02:00
d4d0822eff
simplify make preprocess using clang-format's -i
thanks for letting me know krizej I wouldn't have found this myself
2024-04-24 20:09:04 +02:00
2e259e946d
improve make preprocess
fun story - I had this exact piece of code without a single changed not
work the prior 2 times, then I changed a bit, a part started working so
I changed it back to this and the 3rd time it somehow works
2024-04-24 20:03:18 +02:00