1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-08-13 19:52:52 +02:00

Commit Graph

  • 7ac02f7951 Enhance diagnostics for incomplete FILTER clauses: add test case for missing boolean expression in FILTER statement to improve error clarity and coverage. next-array-comp-op next Tim Voronov 2025-08-13 12:09:10 -04:00
  • 052beb2c51 Reorder syntax error matchers: move common error matcher to the correct position for improved error analysis Tim Voronov 2025-08-13 11:56:07 -04:00
  • 2e0a8b6d7c Enhance diagnostics for computed property expressions: improve error messages and hints for unclosed computed property expressions and invalid computed property syntax, and add comprehensive test cases for better clarity and coverage. Tim Voronov 2025-08-13 11:29:08 -04:00
  • 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. Tim Voronov 2025-08-12 13:38:15 -04:00
  • 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. Tim Voronov 2025-08-12 13:18:49 -04:00
  • 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. Tim Voronov 2025-08-12 13:07:00 -04:00
  • 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. Tim Voronov 2025-08-11 18:31:45 -04:00
  • 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. Tim Voronov 2025-08-10 12:30:07 -04:00
  • 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. Tim Voronov 2025-08-07 14:21:46 -04:00
  • 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. Tim Voronov 2025-08-06 18:14:42 -04:00
  • 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. Tim Voronov 2025-08-06 16:30:51 -04:00
  • 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. Tim Voronov 2025-08-06 14:53:51 -04:00
  • f520651b7a wip Tim Voronov 2025-08-06 13:16:26 -04:00
  • 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. Tim Voronov 2025-07-30 22:07:03 -04:00
  • 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. Tim Voronov 2025-07-30 20:41:41 -04:00
  • 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. Tim Voronov 2025-07-30 14:20:24 -04:00
  • d24fac821b Refactor compiler and error handling: introduce multi-error support, improve snippet generation, standardize error listener, update compiler context, and enhance test cases. Tim Voronov 2025-07-29 18:35:55 -04:00
  • 69c5aa3cab Refactor integration tests and FQL parser: replace SkipCaseArray with CaseArray for consistency, improve variable usage in FOR loop tests, and add support for STEP keyword in the lexer. next-for-while Tim Voronov 2025-07-29 14:43:55 -04:00
  • 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. Tim Voronov 2025-07-29 14:04:48 -04:00
  • 4671a45951 Update FQL parser: regenerate parser with updated serialized ATN values. Tim Voronov 2025-07-26 22:05:33 -04:00
  • 1071b7ffc2 Add generated parser and listener code for FQL using ANTLR. Tim Voronov 2025-07-26 21:58:51 -04:00
  • 0ee8e0fcf6 Remove fql_lexer.go: delete unused generated lexer code from the parser package. Tim Voronov 2025-07-26 21:58:20 -04:00
  • 74f3452ec4 Refactor LoopCollectCompiler: simplify aggregation function call handling, optimize register allocation, streamline loop source setup, and update function arguments for consistency. Tim Voronov 2025-07-26 15:18:22 -04:00
  • 7039a97417 Update integration tests: replace SkipCaseArray and DebugCaseArray with CaseArray for consistency across test cases. Tim Voronov 2025-07-26 14:59:11 -04:00
  • 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. Tim Voronov 2025-07-26 14:55:53 -04:00
  • 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. Tim Voronov 2025-07-26 10:46:31 -04:00
  • 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 Tim Voronov 2025-07-26 10:28:01 -04:00
  • e619212ac6 Refactor LoopCollectCompiler: enhance COLLECT clause processing by improving aggregation and grouping handling, optimizing register usage, and updating projection logic. Tim Voronov 2025-07-26 10:22:33 -04:00
  • d7d25bb0b3 Refactor ExprCompiler to use variable name for symbol resolution and update integration tests by replacing SkipCaseArray and DebugCaseArray with CaseArray for consistency. Tim Voronov 2025-07-26 10:15:43 -04:00
  • 8aa36442e9 Fix for loop variable increment in loop_collect_agg.go, update test cases to replace SkipCaseArray with DebugCaseArray and DebugCaseArray with CaseArray. Tim Voronov 2025-07-25 09:54:28 -04:00
  • 81b7cfd2eb Refactor loop collection: enhance CollectorSpec with destination handling, streamline projection logic, improve aggregation handling, optimize register allocation, and update COLLECT integration tests. Tim Voronov 2025-07-25 09:50:56 -04:00
  • 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. Tim Voronov 2025-07-24 17:15:02 -04:00
  • 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. Tim Voronov 2025-07-21 22:01:03 -04:00
  • fa02a1fd19 Refactor loop collection logic: standardize collector type handling, update grouping initialization, optimize register allocation, improve selector variable compilation, and enhance COLLECT integration tests. Tim Voronov 2025-07-21 16:00:30 -04:00
  • 0210fef01e Merge branch 'next' into feat/next-drop-globals Tim Voronov 2025-07-21 11:51:58 -04:00
  • 99dbfe34a5 Refactor loop collection logic: improve grouping key compilation, restructure collector finalization, update grouping context handling, and optimize register allocation for COLLECT queries. Tim Voronov 2025-07-21 11:51:35 -04:00
  • 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. Tim Voronov 2025-07-21 11:28:32 -04:00
  • 2827103f1e Refactor loop projection logic: remove redundant loop parameter from projection functions, optimize group variable handling, and enhance integration tests for COLLECT queries. Tim Voronov 2025-07-14 12:21:20 -04:00
  • 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. Tim Voronov 2025-07-08 12:56:31 -04:00
  • 07a3eeaa37 Add unit tests to ForExpression (#791) master rikinyan 2025-07-09 01:34:19 +09:00
  • 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. Tim Voronov 2025-07-07 20:36:36 -04:00
  • 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. Tim Voronov 2025-07-07 18:03:19 -04:00
  • a575483d0d Validate program input in disassembler, add ErrInvalidProgram, and update opcode formatting for improved clarity. Tim Voronov 2025-07-07 16:29:18 -04:00
  • 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. Tim Voronov 2025-07-07 16:29:07 -04:00
  • 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. Tim Voronov 2025-07-07 13:29:50 -04:00
  • c6c1309264 Add panic recovery and disassembly output to integration test cases for better debugging of VM compilation errors. Tim Voronov 2025-07-07 11:49:29 -04:00
  • 924c5282cf Organize imports across integration and unit test files for consistent structure. Initialize functions map in SymbolTable safely and refactor disassembler label handling logic. Tim Voronov 2025-07-07 11:27:22 -04:00
  • 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. Tim Voronov 2025-07-03 21:17:38 -04:00
  • 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. Tim Voronov 2025-07-03 18:03:04 -04:00
  • 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. Tim Voronov 2025-07-03 16:56:24 -04:00
  • 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. Tim Voronov 2025-07-02 22:34:14 -04:00
  • 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. Tim Voronov 2025-07-02 21:14:33 -04:00
  • b3970fbb43 Add integration tests for FOR-WHILE loops with LIMIT scenarios and custom function usage Tim Voronov 2025-07-02 20:02:37 -04:00
  • d2098cadb8 Refactor FOR-WHILE loop compilation to ensure compatibility with FOR-IN loops, update value register resolution, and add integration tests for sorting scenarios. Tim Voronov 2025-07-02 16:33:50 -04:00
  • 802672711e Refactor FOR-IN loop cleanup handling; add conditional jump logic for custom iterators. Update integration test case to replace SkipCaseArray with CaseArray. Tim Voronov 2025-07-02 14:46:24 -04:00
  • b66007e9c7 Migrate integration tests from bytecode to compiler package for improved structure and clarity. Tim Voronov 2025-07-02 13:33:39 -04:00
  • 74a2ced589 Introduce base utilities in integration tests for improved reuse and consistency. Refactor test cases to use base.Run and base.Exec. Add new shortcuts.go for shared helpers. Tim Voronov 2025-07-02 13:31:02 -04:00
  • 2f25e4e4be Remove redundant base imports from integration tests and refactor usage of UseCase to TestCase for improved clarity and consistency. Tim Voronov 2025-07-02 13:30:01 -04:00
  • b95d39a552 Refactor loop handling and RETURN statement compilation; enhance register assignment, optimize operand usage, and simplify integration test cases with new helpers and better error handling. Tim Voronov 2025-07-02 12:54:01 -04:00
  • 17a0778331 Refactor FOR and WHILE loop compilation to introduce labeled jumps, add LoopKind distinction for ForIn and ForWhile loops, and improve loop operation consistency. Update integration and bytecode tests with new helper functions and scenarios. Tim Voronov 2025-07-02 12:35:40 -04:00
  • 714672ceb0 Refactor emitter and loop compilation to replace positional jumps with labeled jumps, improve label management, and optimize control flow handling. Update integration tests and add utility for safe function execution. Tim Voronov 2025-07-01 17:34:48 -04:00
  • 223c28aa6b Remove outdated compiler benchmarks, refactor function registration in namespace, and migrate math stdlib functions to simplified argument handling. Add new benchmarks for function calls and sorting scenarios. Tim Voronov 2025-06-30 17:02:09 -04:00
  • e09f981560 Refactor loop and dataset handling; introduce Patchx method for emitter, add FindParent to loop table, and update DISTINCT logic with nested loop support. Expand integration tests for DISTINCT scenarios. Tim Voronov 2025-06-28 14:29:53 -04:00
  • 7dbcc24e04 Add COUNT_DISTINCT function to stdlib collections, update related integration tests, and refactor min/max calculation methods for clarity and consistency. Tim Voronov 2025-06-27 14:42:47 -04:00
  • f48f819607 Remove obsolete TestCollectAggregateAdditional test file, refactor aggregation logic with skipping empty accumulators, add Length support to collectors and sorters, and update integration tests for grouping and array operations. Tim Voronov 2025-06-27 13:47:00 -04:00
  • 54c036e9c8 Remove unused HTML element attribute manipulation functionality, including attribute getters, setters, and related utility code, across drivers and stdlib. Tim Voronov 2025-06-25 20:48:48 -04:00
  • e60a02ec12 Refactor loop aggregation logic; optimize destination register handling, adjust collector allocation, and improve resource management in nested aggregation scenarios. Update integration tests with consistent formatting for nested FOR cases. Tim Voronov 2025-06-25 16:23:39 -04:00
  • dd817e7115 Add nested FOR loop integration tests with grouping and concatenated gender scenarios Tim Voronov 2025-06-25 14:31:52 -04:00
  • 8731b7d71f Refactor loop and collect compilation; replace lc and cc parameters with c for consistency, unify naming conventions across loop and collect compilers, and improve method clarity and readability. Tim Voronov 2025-06-25 14:10:41 -04:00
  • b49c73250e Add additional nested FOR loop test cases with sorted concatenation Tim Voronov 2025-06-25 11:35:16 -04:00
  • df45d13b56 Refactor loop and sort compilation; update loop position handling, improve dataset patching logic, and restructure nested sorting and collector workflows. Add integration tests for distinct and nested FOR loops. Tim Voronov 2025-06-25 11:21:18 -04:00
  • 3433e3d4d1 Add new test case for grouping and aggregating values with calculated age ranges Tim Voronov 2025-06-24 18:24:51 -04:00
  • f859c4ead7 Refactor collector and aggregator handling; add Get and Close methods to collectors and sorters, restructure aggregation logic with multi-argument support, and update loop compilation to optimize resource management and key-value integration Tim Voronov 2025-06-24 18:19:22 -04:00
  • 4de53a5665 Refactor loop compilation; update initialization logic for zero/one registers and adjust range iteration handling, restructure range iterator tests, and align imports for consistency Tim Voronov 2025-06-19 19:52:10 -04:00
  • 215501c78f Refactor loop and collect compilation; introduce key-value pairs for collection, unify loop handling, restructure methods, and improve aggregation and grouping logic Tim Voronov 2025-06-19 18:05:38 -04:00
  • 4f59a07e99 Refactor loop sort compilation; restructure LoopSortCompiler, introduce key-value pair handling for sort clauses, and improve sorting logic clarity Tim Voronov 2025-06-19 16:57:19 -04:00
  • 87ace590bf Refactor loop compilation; introduce LoopSortCompiler and LoopCollectCompiler to unify sort and collect logic, restructure loop methods, and improve clarity Tim Voronov 2025-06-19 16:54:13 -04:00
  • f3e660ed5e Refactor collect compilation; rename grouping methods to unify collect logic and improve clarity Tim Voronov 2025-06-18 17:29:05 -04:00
  • 2e78bc4c64 Refactor collect handling; restructure group and aggregation logic, unify loop operations, and improve method clarity Tim Voronov 2025-06-18 17:22:39 -04:00
  • 16137db876 Refactor collect aggregation; improve loop handling, add initialization/binding methods, and restructure aggregation logic for grouped and global cases Tim Voronov 2025-06-18 16:55:46 -04:00
  • 8e3b250201 Refactor integration tests and imports; organize imports alphabetically, improve test structuring, and enable previously skipped test cases Tim Voronov 2025-06-17 15:59:38 -04:00
  • 54fa2a0d51 Refactor compiler tests and internals; introduce new base test utilities, replace and restructure integration tests, and update register and constant handling Tim Voronov 2025-06-11 21:46:27 -04:00
  • 1520861ea0 Refactor opcode handling; add string representation for Opcode to improve readability and debugging Tim Voronov 2025-06-11 16:18:50 -04:00
  • 7d317aca3c Refactor compiler context; rename FuncContext to CompilerContext and update related references for improved clarity Tim Voronov 2025-06-11 11:42:47 -04:00
  • b0158406da Refactor compiler internals; rename files and update context usage for improved clarity and structure Tim Voronov 2025-06-11 10:28:09 -04:00
  • 775e24b5b2 Refactor compiler internals; rename files and update context usage for improved clarity and structure Tim Voronov 2025-06-11 10:12:42 -04:00
  • 09f47e66fc Refactor compiler structure; move internal packages to core and update references Tim Voronov 2025-06-11 10:00:57 -04:00
  • cf87b63720 Refactor compiler components; introduce CatchStack and enhance FuncContext for improved state management Tim Voronov 2025-06-11 08:02:05 -04:00
  • fb26157bf5 Rename and refactor constants and loop management; introduce new context and update related structures Tim Voronov 2025-06-09 21:23:51 -04:00
  • e7bf6de25f Refactor register allocation and symbol management; introduce ConstantsPool for deduplication Tim Voronov 2025-06-09 21:16:24 -04:00
  • 11f493ef79 wip Tim Voronov 2025-06-09 20:34:04 -04:00
  • 8ba359166f Refactor file structure and update import paths for consistency Tim Voronov 2025-06-09 17:24:10 -04:00
  • 0a007a36c3 Introduce CollectorType enumeration and refactor loop handling for aggregation support Tim Voronov 2025-06-09 16:14:34 -04:00
  • f3fc807789 Refactor loop handling and introduce support for aggregation in COLLECT clauses Tim Voronov 2025-06-09 14:29:04 -04:00
  • 889365c56f Categorize and group opcodes; improve readability and maintainability of opcode.go Tim Voronov 2025-06-06 16:38:07 -04:00
  • 176fe8ce4f Refactor collectors and sorters; introduce Transformers Tim Voronov 2025-06-06 16:34:20 -04:00
  • 38625ad059 Refactor collectors and sorters; introduce Transformers Tim Voronov 2025-06-06 16:34:14 -04:00
  • 24b9a7697b Move compiler-related components to internal package Tim Voronov 2025-06-06 11:19:29 -04:00
  • dc5ce9a5cc Implement collectors for grouping and counting in collect clauses Tim Voronov 2025-06-06 11:09:45 -04:00
  • 31cf71d8a8 Add support for grouping with counting in collect clauses Tim Voronov 2025-06-05 15:12:22 -04:00