# Lexer and parser for advanced calculator in C

It is necessary to develop the application in C or C ++ programming language, using tools

for developing lexers and parsers, which works as an advanced calculator. Calculator

calculates mathematical expressions line by line, while having the ability to store in

variables and calls of trigonometric functions. Calculator description:

• The print command is used to print the value of an expression.

• The types of data that can appear in expressions are strings and real

numbers,

• operations that can be performed with real numbers are addition, subtraction

less, multiplication and division (+, -, *, /) respecting the priority of multiplication and

divisions over the other two,

• It is possible to group expressions using pairs of parentheses (), [] and {} which are

they do not differ in functionality, but contribute to clarity

expression :

a = 56*([5 + 4.7 * (6-2/3) - 8.875] + 5.87)

print a

1515.453333

• there is an unary operator -, which denies the value of the expression.

print 10 + 20

20.000000

print -10 + 20

10.000000

print ---10

-10.000000

• The operation that can be performed with strings is the build, which it uses

operator &,

• If a string and expression are found in the operation, the expression must be evaluated and converted

him into his textual representation,

print "Temperature is" & 20 & "degrees

The temperature is 20.000000 degrees

print "Temperature is" & (20 * 9/5 + 32) & "Fahrenheit"

The temperature is 68.000000 Fahrenheit

• It is possible to use the functions of one argument sin, cos, sindeg and cosdeg which

calculate the sine and cosine of the angle in radians, ie degrees. Functions

can be used with or without parentheses around the argument, eg sin (0.456) and sin

0.456 are equivalent. When calling with parentheses, you may not specify an expression

inside parentheses. If we omit the brackets, only the number can be passed

or a variable as a parameter, not an entire expression.

print sin(90)

0.893997

print sindeg 90

1.000000

print sindeg(3*30)

1.000000

To remember the results of arithmetic expressions, as well as to use these values

in other expressions, variables of arbitrary name may be used (rule

naming as in C language). The variables are exclusively of the real number type. It's not

it is possible to store a string in a variable.

• Variables are assigned a value by the operator =.

• An assignment operation is also an arithmetic expression whose value is exactly

assigned value so that it is possible to write an expression that variables b

assigns a value of 3 and then assigns the same value to variable A:

foo_ = bar1 = 3

print foo_

3.000000

print bar1

3.000000

• The print command can also be used to print multiple values ​​(expressions),

where values ​​(expressions) are separated by commas (eg print var, 4, 5/10).

Each comma-separated value is printed in a new line on the standard

exit.

print foo_ + 5, "bar = " & bar1, 10.0

8.000000

bar = 3.000000

10.000000

The calculator takes all commands from the standard input. Anything that is not precisely specified

fictional or cannot be inferred from the example below, you can realize it arbitrarily,

but not to violate any of the above.

The implemented task should contain a Makefile that compiles

the program uses the make command and generates an executable file named calculator.

İşveren Hakkında:
( 1 değerlendirme ) Turiysk, Ukraine

Proje NO: #32689411

## Bu iş için 11 freelancer ortalamada \$74 teklif veriyor

letshappy

i read all the calculation and logics and i will develop this advance calculator for u

\$150 USD in 5 gün içinde
(12 Değerlendirme)
5.2
mohammed97712

Hello, I have rich experience in C/C++ coding. I have read all your explanations carefully and fully understand your requirements. So I am sure I can give you correct and good results. I would appreciate it if you coul Daha Fazla

1 gün içinde %bids___i_sum_sub_32%%project_currencyDetails_sign_sub_33% USD
(12 Değerlendirme)
4.3
AndreiSokolov

===== Expert of C/C++/Lexical Parsing(Flex and Bison) HERE ===== Dear Client! I am Andrei, experienced programmer from Russia. I have read your requirement and I noticed that I am appropriate to this project. As a skil Daha Fazla

\$80 USD in 2 gün içinde
(9 Değerlendirme)
4.5
ahryshkevich

1 gün içinde %bids___i_sum_sub_32%%project_currencyDetails_sign_sub_33% USD
(8 Değerlendirme)
3.7
Timila2021

Hi, I've read your description carefully. I have full experience with java, c++ I've also worked on several similar projects. So I can complete your project with high quality on time. Looking forward to hear more about Daha Fazla

\$55 USD in 2 gün içinde
(3 Değerlendirme)
2.7
VovaLunev1

Hi, It seems a very interesting project for me. I have a deep understanding and experience in the areas of C, lexer & literal parser.... ********************************************************************************* Daha Fazla

1 gün içinde %bids___i_sum_sub_32%%project_currencyDetails_sign_sub_33% USD
(1 Yorum)
2.2
sanyammalhotra62

Hi, I have read and understand your requirements. I can do it perfectly. I type at the speed of 50 wpm. I have more than 5 years of experience as data entry operator. I can save your time and money. Regards, Sanyam Mal Daha Fazla

\$55 USD in 7 gün içinde
(0 Değerlendirme)
0.0
hetboda12345

My work is best to your company i give my nest to your company. Without any typed of mistakes please give me p project

\$50 USD in 7 gün içinde
(0 Değerlendirme)
0.0
rabingyawali26

I am a comuter engineering student and it perfectly match my skills and can complete it in the same frame

\$70 USD in 3 gün içinde
(0 Değerlendirme)
0.0