My request is to make a compiler that transforms an expression like "add(5, mul(3, sub(10, pow(6, 4))))", in a equivalent mathematical expression, "5 + 3 * (10 - 6^4)" in this case.
Functions: add(x, y) (addition), sub(x, y) (subtraction), mul(x, y) (multiplication), div(x, y) (division), mod(x, y) (modulo), pow (x, y) (power), where x, y are operands
Operand: a number conforming to the following grammar:
<number> ::= <optional-sign> <digit-sequence> <optional-fraction> <optional-exponent>
<optional-sign> ::= "" | "+" | "-"
<optional-fraction> ::= "" | "." <digit-sequence>
<optional-exponent> ::= "" | "e" <optional-sign> <digit-sequence>
<digit-sequence> ::= <digit> | <digit> <digit-sequence>
<digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Other elements: brackets ( and ) and whitespace (in the evaluated expression, there can be any number of whitespace characters, like spaces)
Desired result: A mathematical expression equivalent to the specified composition of functions. Make sure the order of operation application stays the same. Unnecessary brackets should be omitted.
The operator precedence has three levels, from lowest to highest:
1: +, -
2: *, /, %
3: ^
The ^ operator is right associative, other operators are left associative.
Implementation language: C, C++ or Java
For lexical analysis, use regular expressions and finite automata; for syntax analysis, use context-free grammars and precedence-based parsing
ALL PARTS OF THE CODE MUST BE LARGELY COMMENTED!
⭐How are you ?⭐
I have a detail look to your project, and I'm sure that I will complete your project surely.
I am good at c, c++ and java programming.
I am sure high quality.
Please let's discuss in detail.
Thank you so much!
Best Regards
€19 EUR in 7 Tagen
5,0 (7 Bewertungen)
3,0
3,0
3 Freelancer bieten im Durchschnitt €20 EUR für diesen Auftrag
I am an experienced java developer, having almost 5 years of development knowledge. I have gone throgh your porject's details, It's doable in required timeframe and 100% according to your preferences. I will be waiting
for your response so we can start working.
You can check my previous work in portfolio.