Refactor error handling in Expression class
Removed the ErrorListener instances in the Expression class and simplified the error handling process. These changes reduced redundancy and improved the readability of the code. Now, instead of using two separate ErrorListener instances to catch lexer and parser errors, we just throw an error in case parsing fails. Errors are now stored directly in an array in the Expression instance, simplifying access to them.
Refactor tests for better error handling and clean up
Refactored Expression.test.ts and JsonSerialize.test.ts to utilize HasErrors() function for clearer, more accurate error handling. Additionally, cleaned up unnecessary variable declarations in JsonSerialize.test.ts for better readability. These changes improve test robustness and clarity in code.