1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-08-15 20:02:56 +02:00
Commit Graph

1037 Commits

Author SHA1 Message Date
Tim Voronov
b811f17f6a Add comprehensive tests for unclosed string literals: enhance diagnostics and error hints for various cases of unclosed strings, including single, double, and backtick quotes, to improve clarity and coverage. 2025-08-12 13:38:15 -04:00
Tim Voronov
3cd9c9a434 Enhance diagnostics for incomplete ternary expressions: improve error messages and hints for missing expressions after '?' and ':' in ternary operator, and add comprehensive test cases for better clarity and coverage. 2025-08-12 13:18:49 -04:00
Tim Voronov
a12943633e Enhance diagnostics for unclosed string literals: improve error messages and hints for missing opening and closing quotes, and add comprehensive test cases for better clarity and coverage. 2025-08-12 13:07:00 -04:00
Tim Voronov
56acc48b9c Refactor common error handling: enhance diagnostics for unmatched syntax, improve error messages and hints for logical operators, string literals, and grouping expressions, and add comprehensive syntax error test cases for better clarity and coverage. 2025-08-11 18:31:45 -04:00
Tim Voronov
b69f8af716 Add syntax error tests for FOR loops and COLLECT statements: enhance diagnostics for missing values, incomplete clauses, and unexpected syntax to improve error handling and clarity. 2025-08-10 12:30:07 -04:00
Tim Voronov
f1dc2b12a1 Refactor error handling for LIMIT clause: enhance diagnostics for dangling commas, improve error messages and hints, and introduce common error matching logic for better clarity and maintainability. 2025-08-07 14:21:46 -04:00
Tim Voronov
d26988fb2d Refactor error handling and diagnostics: enhance error messages for syntax errors, improve handling of extraneous input, and streamline error listener logic for better clarity and maintainability. 2025-08-06 18:14:42 -04:00
Tim Voronov
f4dab1e3a3 Refactor error handling for FOR and COLLECT statements: enhance error messages for missing variables, improve error span tracking, and streamline error analysis for better clarity and maintainability. 2025-08-06 16:30:51 -04:00
Tim Voronov
0edbdc6a1b Refactor syntax error handling: enhance error analysis for FOR loops and return values, update error messages, and streamline matcher functions for improved clarity and maintainability. 2025-08-06 14:53:51 -04:00
Tim Voronov
f520651b7a wip 2025-08-06 13:16:26 -04:00
Tim Voronov
57390fc901 Refactor error handling and token tracking: replace direct access of TokenHistory with TokenNode, introduce TokenNode struct, enhance TrackingTokenStream to improve token management, update error handling logic to leverage TokenNode traversal, and refine error messaging for syntax errors. 2025-07-30 22:07:03 -04:00
Tim Voronov
26fa6cd3c3 Refactor error handling: replace NewSyntaxError with a more comprehensive parseError method, improve syntax error parsing, introduce token tracking via TrackingTokenStream and TokenHistory, add SkipWhitespaceForward helper, update parser to support token stream transformations, and enhance error messaging across the compiler and test cases. 2025-07-30 20:41:41 -04:00
Tim Voronov
c24d802671 Refactor error handling: replace Location with Span, standardize error span processing across the compiler, remove unused location-related code, and update snippets and tests accordingly. 2025-07-30 14:20:24 -04:00
Tim Voronov
d24fac821b Refactor compiler and error handling: introduce multi-error support, improve snippet generation, standardize error listener, update compiler context, and enhance test cases. 2025-07-29 18:35:55 -04:00
Tim Voronov
b2163ebc14 Add error handling and refactor compiler context: introduce error handling for variable declarations, update compiler context to use file source, and enhance error reporting for compilation issues. 2025-07-29 14:04:48 -04:00
Tim Voronov
4671a45951 Update FQL parser: regenerate parser with updated serialized ATN values. 2025-07-26 22:05:33 -04:00
Tim Voronov
1071b7ffc2 Add generated parser and listener code for FQL using ANTLR. 2025-07-26 21:58:51 -04:00
Tim Voronov
0ee8e0fcf6 Remove fql_lexer.go: delete unused generated lexer code from the parser package. 2025-07-26 21:58:20 -04:00
Tim Voronov
74f3452ec4 Refactor LoopCollectCompiler: simplify aggregation function call handling, optimize register allocation, streamline loop source setup, and update function arguments for consistency. 2025-07-26 15:18:22 -04:00
Tim Voronov
7039a97417 Update integration tests: replace SkipCaseArray and DebugCaseArray with CaseArray for consistency across test cases. 2025-07-26 14:59:11 -04:00
Tim Voronov
5185abd714 Refactor LoopCollectCompiler: replace CollectorSpec with Collector, improve grouping and aggregation handling, update emitter methods, standardize key loading logic, streamline function naming and argument handling, add Count function to collections, and enhance code comments for readability. 2025-07-26 14:55:53 -04:00
Tim Voronov
b65780acb6 Add comprehensive comments to ExprCompiler, LiteralCompiler, StmtCompiler, and WaitCompiler to improve code readability and maintainability. Document struct purposes, method parameters, return values, and inline explanations for complex sections consistently across the files. 2025-07-26 10:46:31 -04:00
Tim Voronov
43e47779a3 Add comprehensive comments to the file, following the same style as used in the other files:- Add a comment for the LoopCompiler struct explaining its purpose- Add comments for each method explaining what it does, its parameters, and return values- Add inline comments for complex code sections to explain the logic- Ensure comments are consistent with the style used in other files 2025-07-26 10:28:01 -04:00
Tim Voronov
e619212ac6 Refactor LoopCollectCompiler: enhance COLLECT clause processing by improving aggregation and grouping handling, optimizing register usage, and updating projection logic. 2025-07-26 10:22:33 -04:00
Tim Voronov
d7d25bb0b3 Refactor ExprCompiler to use variable name for symbol resolution and update integration tests by replacing SkipCaseArray and DebugCaseArray with CaseArray for consistency. 2025-07-26 10:15:43 -04:00
Tim Voronov
8aa36442e9 Fix for loop variable increment in loop_collect_agg.go, update test cases to replace SkipCaseArray with DebugCaseArray and DebugCaseArray with CaseArray. 2025-07-25 09:54:28 -04:00
Tim Voronov
81b7cfd2eb Refactor loop collection: enhance CollectorSpec with destination handling, streamline projection logic, improve aggregation handling, optimize register allocation, and update COLLECT integration tests. 2025-07-25 09:50:56 -04:00
Tim Voronov
8c41c503a0 Refactor LoopCollectCompiler: replace aggregateSelector with core.AggregateSelector, introduce CollectorSpec struct, streamline grouping and aggregation handling, optimize register usage, finalize projection logic, update go.mod dependencies, and enhance integration tests for COLLECT queries. 2025-07-24 17:15:02 -04:00
Tim Voronov
0e02058703 Refactor ExprCompiler and LoopCollectCompiler: extract function name compilation logic, introduce aggregateSelector struct, improve aggregation handling with grouped and global selectors, optimize collector setup, and enhance loop processing. 2025-07-21 22:01:03 -04:00
Tim Voronov
fa02a1fd19 Refactor loop collection logic: standardize collector type handling, update grouping initialization, optimize register allocation, improve selector variable compilation, and enhance COLLECT integration tests. 2025-07-21 16:00:30 -04:00
Tim Voronov
0210fef01e Merge branch 'next' into feat/next-drop-globals 2025-07-21 11:51:58 -04:00
Tim Voronov
99dbfe34a5 Refactor loop collection logic: improve grouping key compilation, restructure collector finalization, update grouping context handling, and optimize register allocation for COLLECT queries. 2025-07-21 11:51:35 -04:00
Tim Voronov
948b6b698e Add tests for function calls and variable declarations: implement unit tests for function call behavior and variable handling in the compiler, enhancing test coverage and ensuring correctness. 2025-07-21 11:28:32 -04:00
Tim Voronov
2827103f1e Refactor loop projection logic: remove redundant loop parameter from projection functions, optimize group variable handling, and enhance integration tests for COLLECT queries. 2025-07-14 12:21:20 -04:00
Tim Voronov
b0d89cc3b6 Refactor loop compilation: introduce ScopeProjection for improved scope management, optimize key/value variable handling, update scope packing/unpacking logic, enhance integration tests, and organize imports. 2025-07-08 12:56:31 -04:00
Tim Voronov
c3364ed4d8 Refactor LIST, MAP, and RANGE opcodes to LOADARRAY, LOADOBJECT, and LOADRANGE, update related emitter methods, adjust compiler logic for loop and scope handling, improve integration tests, and enhance disassembler output for updated opcodes. 2025-07-07 20:36:36 -04:00
Tim Voronov
2248f42c3e Refactor namespaces and standard library integration: remove NamespaceContainer from compiler, migrate namespace logic to runtime, replace WithFunctions with new standard library helpers in tests, and improve error handling in function registration. 2025-07-07 18:03:19 -04:00
Tim Voronov
a575483d0d Validate program input in disassembler, add ErrInvalidProgram, and update opcode formatting for improved clarity. 2025-07-07 16:29:18 -04:00
Tim Voronov
d39c5ce889 Refactor loop compilation to ensure scope management with EnterScope and ExitScope, update variable declaration for key/value names, and ensure compatibility with FOR-IN loops. 2025-07-07 16:29:07 -04:00
Tim Voronov
f20e75f1b1 Refactor loop initialization logic to include loop depth in label names, update operand formatting in disassembler, skip test cases using SkipCaseArray, and improve integration test coverage for nested FOR loops. 2025-07-07 13:29:50 -04:00
Tim Voronov
c6c1309264 Add panic recovery and disassembly output to integration test cases for better debugging of VM compilation errors. 2025-07-07 11:49:29 -04:00
Tim Voronov
924c5282cf Organize imports across integration and unit test files for consistent structure. Initialize functions map in SymbolTable safely and refactor disassembler label handling logic. 2025-07-07 11:27:22 -04:00
Tim Voronov
8893605445 Refactor logical operator compilation (AND, OR) to improve label usage and short-circuit evaluation, update label definitions in Emitter, enhance disassembler with function and label metadata, and implement function validation in vm. 2025-07-03 21:17:38 -04:00
Tim Voronov
09df483164 Refactor iterator-related opcodes (OpIterSkip, OpIterLimit) to fix operand handling and label resolution in vm, emitter, and disassembler. Update instruction formatting and improve disassembler output. 2025-07-03 18:03:04 -04:00
Tim Voronov
a1e98c3c3c Refactor logical operator compilation to optimize short-circuit evaluation, add assembly utilities (assembler and disassembler), and migrate integration tests from bytecode to compiler package for improved organization. 2025-07-03 16:56:24 -04:00
Tim Voronov
ea827fc2f4 Refactor FOR-WHILE loop compilation to ensure proper LoopKind handling and value/key resolution, update map operations, and add integration tests for COLLECT scenarios. 2025-07-02 22:34:14 -04:00
Tim Voronov
0b528b62c0 Refactor FOR-WHILE loop compilation to ensure proper LoopKind handling and value/key resolution, update map operations, and add integration tests for COLLECT scenarios. 2025-07-02 21:14:33 -04:00
Tim Voronov
b3970fbb43 Add integration tests for FOR-WHILE loops with LIMIT scenarios and custom function usage 2025-07-02 20:02:37 -04:00
Tim Voronov
d2098cadb8 Refactor FOR-WHILE loop compilation to ensure compatibility with FOR-IN loops, update value register resolution, and add integration tests for sorting scenarios. 2025-07-02 16:33:50 -04:00
Tim Voronov
802672711e Refactor FOR-IN loop cleanup handling; add conditional jump logic for custom iterators. Update integration test case to replace SkipCaseArray with CaseArray. 2025-07-02 14:46:24 -04:00