m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lexer.js10
-rw-r--r--src/parser.js6
2 files changed, 6 insertions, 10 deletions
diff --git a/src/lexer.js b/src/lexer.js
index fd0d0a3..8635e4a 100644
--- a/src/lexer.js
+++ b/src/lexer.js
@@ -14,19 +14,15 @@ const newValueLexeme = (type, regex, converter = v => v) => {
})
}
-const newSkippableLexeme = (type, regex) => {
- newLexemeType(type, regex, () => {})
-}
-
newValueLexeme('constant', '\\d+', Number)
newLexemeType('d', 'd')
-newLexemeType('+', '\\+')
-newLexemeType('-', '-')
+newLexemeType('bigPlus', ' \\+ ' )
+newLexemeType('bigMinus', ' - ')
+newLexemeType('minus', '-')
newLexemeType('(', '\\(')
newLexemeType(')', '\\)')
newLexemeType('E', 'E')
newLexemeType('K', 'K')
-newSkippableLexeme('whitespace', '\\s+')
const lex = (expressionString) => {
let lexemes = []
diff --git a/src/parser.js b/src/parser.js
index fd974bc..588f480 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -63,9 +63,9 @@ newSymbol('d', (parser) => {
newDieOperation('E')
newDieOperation('K')
-newInfix('+', 20, { type: 'add' })
-newInfix('-', 20, { type: 'subtract' })
-newSymbol('-', (parser) => {
+newInfix('bigPlus', 20, { type: 'add' })
+newInfix('bigMinus', 20, { type: 'subtract' })
+newSymbol('minus', (parser) => {
return {
type: 'negative',
value: parser.expression(40)