termcalc 1.0.1

a simple Terminal Calculator
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
tc-line         ::= item, EOL ;
item            ::= assignment | expr ;
assignment      ::= identifier '=' expr ;
identifier      ::= [a-zA-Z_][a-zA-Z_0-9]* ;
expr            ::= add-expr ;
add-expr        ::= mul-expr | add-expr add-op mul-expr ;
add-op          ::= '+' | '-' ;
mul-expr        ::= unary-expr | mul-expr mul-op unary-expr-expr ;
mul-op          ::= '*' | '/' | '%' ;
unary-expr      ::= pow-expr | unary-op unary-expr ;
unary-op        ::= '+' | '-' ;
pow-expr        ::= primary | primary '^' pow-expr ;
primary         ::= number | '(' expr ')' | identifier | call-expr ;
number          ::= [0-9]+(.[0-9]+)? | '.'[0-9]+ ;
call-expr       ::= identifier '(' argument-list ? ')' ;
argument-list   ::= expr (',' expr)* ;