Evaluate statements of an expression language

Assignment Help Visual Basic Programming
Reference no: EM13308334

Project involves completing and extending the C++ program that evaluates statements of an expression language contained in the module 3 case study.

The statements of that expression language consist of an arithmetic expression followed by a list of assignments. Assignments are separated from the expression and each other by commas. A semicolon terminates the expression. The arithmetic expressions are fully parenthesized infix expressions containing integer literals and variables. The valid arithmetic operators are +, -, *, /. Tokens can be separated by any number of spaces. Variable names begin with an alphabetic character, followed by any number of alphanumeric characters. Variable names are case sensitive. This syntax is described by BNF and regular expressions in the case study.

The program reads in the arithmetic expression and encodes the expression as a binary tree. After the expression has been read in, the variable assignments are read in and the variables and their values of the variables are placed into the symbol table. Finally the expression is evaluated recursively.

Your first task is to complete the program provided by providing the three missing classes, Minus, Times and Divide.

Next, you should extend the program so that it supports relational and logical expression operators as defined by the following extension to the grammar:

<exp> -> '(' <operand><op><operand> ')' | '(' <operand> '!' ')'
<op> -> '+' | '-' | '*' | '/' |  '>' | '<' | '=' | '&' | '|'

Note that there are a few differences in the use of these operators compared to their customary use in the C family of languages. There differences are:

  • The logical operators use single symbols not double, for example the and operator is & not &&
  • The negation operator ! is a postfix operator, not a prefix one
  • There are only three relational operators not the usual six and the operator for equality is = not ==

Like C and C++, any arithmetic expression can be interpreted as a logical value, taking 0 as false and anything else as true.

Your final task is to make the following two modifications to the program:

  • The program should accept input from a file, allowing for multiple expressions arranged one per line. Some hints for accomplishing this transformation will be provided in the conference
  • All results should be changed from double to int. In particular the evaluate function should return an int.

Attachment:- CS_Question.zip

Reference no: EM13308334

Questions Cloud

Management deals with these two sometimes competing goals : The Theory of the Firm document, the Friedman article, and the information in chapter 4 argue that the main goal of a firm in a market economy is to maximize profit (shareholder wealth)
Obtain the force on the car : A laserpointer has a beam intensity of 37 W/m2 and a beam radius of 3.1 mm. what is the force on the car
Identify how business ethics social responsibility : Identify how business ethics, social responsibility, and sustainability are interrelated.
Determine drop structure is to be installed as grade control : To protect the channel from erosion, the normal flow velocity for the design discharge has to be reduced to 7.0 fps or below, and the flow Froude number must be reduced to 0.80 or below.
Evaluate statements of an expression language : Project involves completing and extending the C++ program that evaluates statements of an expression language contained in the module 3 case study.
Explain the average length of stay per room type : What is the average length of stay per room type. What is the average number of visitor per room type. What is the base income per room (i.e., length of visit multiplied by the daily rate) during a specified period of time
Modify the test scores program from the above debug : Also print a report of the each student's test grades, average and final grade as a table, and then print the averages of each Test and overall Test Average, as well as highest Test Grade of all Tests and the student with the highest class grade.
What is the planes new velocity : A plane is flying southeast at 200 km/h. Suddenly, it encounters wind heading 40 degrees north of east at 35 km/h. What is the planes new velocity
What is the maximum amount of cargo that can be carried : A small truck is to be driven down a 4% grade at 70mi/hr. The coefficient of road adhesion is 0.95, and it is known that the baking efficiency is 80% when the truck is empty and decreases by one percentage point for every 100 lb of cargo added.

Reviews

Write a Review

Visual Basic Programming Questions & Answers

  Create an application user to enter the following employee

Create an application that allows the user to enter the following employee data: First Name, Middle Name, Last Name, Employee Number, Department, Telephone Number, Telephone Extension, and E- mail Address. The valid selections for depart-ment are Acc..

  Module scope and procedure scope

What are the differences between a module scope and procedure scope? How do you declare a procedure-level and module-level variable?

  Theory of charisma described as a double-edge sword

Why is the theory of charisma described as a double-edge sword and please identify a leader that used charisma in a negative manner

  Visual basics program to calculate and display charges

Assume that no car parks for longer than 24 hours at a time. Write a visual basics program that calculates and displays the parking charges for each customer who parked a car in this garage.

  Permit a user to manipulate database using vb

Use VB to permit a user to manipulate database according to following: Permit the user to scroll through list of students while showing student ID, student name, advisor name, and department.

  Vv boards system

VV Boards System - To demonstrate completing and delivering a prototype RAD system using OOPs capabilities of VB.NET. CIS 3145 Business Application Development with Visual Basic

  Write a program that asks the user to respond to a question

Write a program that asks the user to respond to a question by entering either 1 for yes or 2 for no.

  Create an application that list accounts from a dictionary

Create an application that list accounts from a Dictionary Object. Create an Account Class that contains an ID, Name, and Balance.

  Visual basic program to accept numeral values

Write a VISUAL BASIC program to accept numeral values of any unit, sum up the total, calculate the average, and then Output the result with a proper unit.

  Gas pump - compute the total cost from the number of gallons

Write a program that will help an elementary school student learn multiplication and compute the total cost from the number of gallons entered and the selected grade.

  Display in message label when statements are executed

What will display in MessageLabel when the following statements are executed? Assume that CountInteger = 10. MessageString = "Visual Basic is fun" IF CountInteger

  Write visual basic program to accept values of any unit

Write down VISUAL BASIC program to accept numeral values of any unit, sum up the total, compute the average, and then Output result with proper unit.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd