rust-expression 0.1.1

Calculator and solver for linear equations.
Documentation
int = { ("+" | "-")? ~ ASCII_DIGIT+ }
num = @{ int ~ ("." ~ ASCII_DIGIT*)? ~ (^"e" ~ int)? }

ident = _{ ASCII_ALPHA ~ ( ASCII_ALPHANUMERIC | "_" )* }

symbol = @{ ident }

operation = _{ add | subtract | multiply | divide | rem | power }
    add      = { "+" }
    subtract = { "-" }
    multiply = { "*" }
    divide   = { "/" }
    rem      = { "%" }
    power    = { "^" }

expr = { term ~ (operation ~ term)* }
term = _{ num | symbol | "(" ~ expr ~ ")" }

assignment = { symbol ~ ":=" ~ expr }

solvefor = { "solve" ~ expr ~ "=" ~ expr ~ "for" ~ symbol }

statement = _{ SOI ~ ( solvefor | assignment | expr ) ~ EOI }

WHITESPACE = _{ " " | "\t" }