Replace the evaluator with a Peggy-generated parser#3
Open
frostburn wants to merge 23 commits intoeosterberg:masterfrom
Open
Replace the evaluator with a Peggy-generated parser#3frostburn wants to merge 23 commits intoeosterberg:masterfrom
frostburn wants to merge 23 commits intoeosterberg:masterfrom
Conversation
Convert source code to TypeScript
Limit the Javascript grammar to numbers only. Generate abstract syntax tree parser with Peggy. Replace existing string evaluator with an AST evaluator. ref eosterberg#1
Exponentiation is right-associative i.e. x**y**z = x**(y**z).
Add support for adding your own functions and constants to the evaluation context.
Allow the user to override Math defaults.
Implement some boolean operators and convert results to 0 and 1. Implement update expressions.
Fix scope issues by differentiating between local and global context.
Implement bitwise operators
Add globals Infinity, NaN, isFinite, isNaN.
Reserve 'let' in addition to 'const'.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on #2 and passes existing test suite.