Commit Graph
48 Commits
Author SHA1 Message Date
smallmodel e7c192fbf2 fix(parser): treat "end" as a reserved keyword
Some scripts omit whitespace after the command, for example `end//test comment`, which causes the parser to fail.
2026-02-27 23:54:02 +01:00
smallmodel 5b663c9699 fix(parser): handle cases where there is no space after brackets
e.g `if(cond)println "test"`
2026-02-04 23:51:26 +01:00
smallmodel 8a8d0d3a63 chore(parser): use a single function to rollback to the previous token 2026-02-04 21:10:55 +01:00
smallmodel ecf70528a7 Move all C++ core classes to the corepp directory 2025-08-24 16:51:11 +02:00
smallmodel 08a985d183 Format script grammar source files 2025-04-26 19:35:45 +02:00
smallmodel 816126b13a Add ScriptVariable conditions from Ubertools into the script lexer
Those are Ubertools / F.A.K.K remnants that are valid in original mohaa script grammar
2025-04-26 19:10:08 +02:00
smallmodel bbac9c559c Escape variable name 2025-02-14 23:54:15 +01:00
smallmodel a08a9a4f10 Remove TOKEN_NUMBER (unused)
Some maps use #xx to indicate an identifier, so remove this token to avoid errors
2024-12-08 18:24:33 +01:00
smallmodel f719b87e69 Handle identifiers that are present after strings, by marking strings as identifier 2024-12-08 18:15:26 +01:00
smallmodel f0cc34cccf Correctly parse identifiers starting with a number and containing non-numeric characters 2024-12-08 16:19:57 +01:00
smallmodel b5c32a41de Check for tabs alongside spaces in the lexer between expressions and variables
This fixes a compile error in some scripts that use tabs instead of spaces between expressions
2024-12-01 20:36:30 +01:00
smallmodel a0b80a9096 Fix string not usable for targetname 2024-11-16 18:17:19 +01:00
smallmodel c5721f8a2c Fix variable name starting with multiple consecutive numbers 2024-11-10 17:55:54 +01:00
smallmodel 1a18878f26 Parse unary operators last when calling events 2024-10-31 22:16:20 +01:00
smallmodel 0f3ffa267a Parse const array elements properly 2024-10-31 01:22:38 +01:00
smallmodel 74c8aa95f5 Properly ignore single-digits 2024-10-30 23:21:14 +01:00
smallmodel 4853235d86 Don't parse the token as a variable if the identifier only contains number
This fixes an issue where floats would be parsed as a variable after brackets
2024-10-30 22:42:55 +01:00
smallmodel 4249cacf2f Support token dollar in variable name
This fixes mods like trapshooting not working because of a '$' in a variable name
2024-09-08 18:03:43 +02:00
smallmodel dc60cb45b2 Fixed scripts using syntax like $self 2024-04-09 23:22:54 +02:00
smallmodel cc721a3db6 Lexer fixes for integer
This fixes map loading issues (fixes #258)
2024-02-22 21:36:31 +01:00
smallmodel eb70b30e7a Fixed an issue with the lexer (space before thhe dot) 2024-01-28 19:40:32 +01:00
smallmodel b8e8aead93 Fixed issues with multiple consecutive dollars
This fixes the issue with scripts, like `m6l1c` that accidentally use double dollars for targetnames, like `$$player`
2024-01-22 22:20:25 +01:00
smallmodel b02abb1f18 Fixed issue when the string is escaped with a newline 2023-10-03 17:54:23 +02:00
smallmodel 2929bd82a5 Removed func_expr as it's not used 2023-08-19 23:08:00 +02:00
smallmodel 09ed4e4a1d Fixed grammar priorities of the unuary and complement 2023-08-19 00:34:14 +02:00
smallmodel 25c417187b Removed flex/bison source files from build
Flex/Bison must be used to generate those files
2023-08-18 01:46:16 +02:00
smallmodel 697013bbbf Fixed grammar priorities with const array 2023-08-18 01:18:18 +02:00
smallmodel f1abfeced6 Fixed grammar for if/while/for statements with a single line and a semi-colon 2023-08-17 02:59:54 +02:00
smallmodel 99bce5a11a Fixed identifiers like "break_formation" being treated as "break" and "_formation" separately 2023-08-17 01:08:37 +02:00
smallmodel ab5a3604bf Fixed grammar like "$(value).field"
Fixed newline in if statements
Fixed if/else being ambiguous
2023-08-17 01:05:55 +02:00
smallmodel 9eaecb0a2a Fixed a crash when loading a script, on non-MSVC binaries 2023-08-16 16:07:42 +02:00
smallmodel efed6d0eac Fixed script developer printf 2023-08-16 02:43:22 +02:00
smallmodel 07374ba1ed Compilation errors fixes 2023-08-15 12:47:49 +02:00
smallmodel 3ec799d150 Compiled parser 2023-08-14 03:15:48 +02:00
smallmodel 5e83e03e33 Major grammar/lexer/compiler fixes 2023-08-13 03:34:09 +02:00
smallmodel d2b3f6c12b Added stub yacc / lex 2023-08-12 20:00:12 +02:00
smallmodel f5af33b181 Major script engine fixes 2023-08-12 19:59:40 +02:00
smallmodel 68d48d9889 Used clang-format on some common files 2023-07-05 21:24:02 +02:00
smallmodel 5333c7ff4a Removed empty line before opening braces 2023-07-05 20:52:55 +02:00
OM 55e07205e3 Fixed sval_func1 not having a sourcepos (leading to invalid memory access) 2023-06-27 00:01:30 +02:00
OM ba489a6412 Replaced %error-verbose with %define parse.error verbose 2023-06-20 21:17:18 +02:00
OM c8f25c5a03 Small fixes 2023-06-17 17:00:17 +02:00
OM 147851c506 Moved flex/bison generated files to subfolder "generated"
Added FLEX/BISON cmake generation
2023-06-17 16:54:12 +02:00
OM c287638f99 Reworked file inclusion (using relative path) 2023-06-17 01:24:20 +02:00
L fbd03b6a26 Debloated g_local.h include files 2023-04-29 21:56:38 +02:00
L d4e366ee14 Using sizeof(type[x]) instead of sizeof(type) * x 2023-02-05 22:18:20 +01:00
L d4faf0c0e0 Fixed compilation errors on Unix 2023-02-01 00:28:40 +01:00
L cf18c3a96f Moved script stuff to their matching directory 2023-01-30 18:20:50 +01:00