Lexical Analyzer & Parser

Interactive Expression Parser with Visualization

Input Expression

Input Expression

Loading...

Grammar Rules

ETE'
E'+TE' | -TE' | ε
TFT'
T'*FT' | /FT' | %FT' | ε
FP^F | P
P(E) | func(E) | id | number
funcsin | cos | tan | log | ln | sqrt | abs | exp
ida-z | A-Z | identifiers
number0-9 | decimals

Tokens:

+- Addition
-- Subtraction
*- Multiplication
/- Division
%- Modulo
^- Power/Exponentiation
( )- Parentheses
=- Equals
;- Semicolon
,- Comma
id- Identifier/Number
sin- Sine function
cos- Cosine function
tan- Tangent function
log- Logarithm base 10
ln- Natural logarithm
sqrt- Square root
abs- Absolute value
exp- Exponential e^x

No tokens to display

Test Cases

3+4*5valid

Simple arithmetic with addition and multiplication

a+bvalid

Variables with addition

(x+y)*zvalid

Parentheses with operations

123+456valid

Multi-digit numbers

a*b+c*dvalid

Multiple multiplications and additions

((a+b))valid

Nested parentheses

sin(x)valid

Sine function

log(10)+sqrt(16)valid

Multiple functions

2^3valid

Power operator

a-b*c/d%evalid

All operators

3+invalid

Missing operand after operator

(a+binvalid

Missing closing parenthesis

a binvalid

Missing operator between operands

*ainvalid

Operator at the beginning