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

  Design vb project to calculate checking account balance

Design vb 2008 project to calculate a checking account balance. form: include radio buttons to indicate the type of transaction: deposit, check, or service charge.

  If the sum or product of two positive integers

In C++, the largest int value is 2147483647. So, an integer larger than this cannot be stored and processed as an integer. Similarly, if the sum or product of two positive integers is greater than 2147483647, the result will be incorrect.

  Write a visual logic program to accept series of number

Write a Visual Logic program which accepts a series of numbers, until the first negative value is entered. The maximum number of non-negative input values is 250.

  Designing vb applications across multiple platforms

Technical Project "Designing VB Applications Across Multiple Platforms". This assignment will contain two (2) Parts: Written Paper and Visual Basic Prototype. The Visual Basic Prototype is not included in the total page count but is included in the e..

  Write a program to create an invoice form for an order.

Write a program to create an invoice form for an order. After the data on the left side of Fig. 5.27 is entered, the user can display an invoice in a list box by pressing the Process Order button. The user can click on the Clear Order Form button to ..

  Need help building a vwd website

Need help building a VWD website. This website may not go live. I have little progress as a family tragedy has impeded my time for school.

  Create a sub procedure that calculates and displays the next

A national Digital service provider would like you to create a Windows application that will display the global growth of smartphones. As of 2013, there 913 million smartphones worldwide.

  Develop calendar screens for windows

Develop calendar screens for Windows and imagine you need to present IT troubleshooting best practices to junior systems administrators at an IT department meeting to ensure departmental efficiency with solving issues.

  Write a program that requests the marginal revenue

Write a program that requests the marginal revenue, marginal cost, fixed cost, and number of units of the product produced and sold and then displays one of the following three outputs: Profit, Loss or Break Even.

  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, and store it in a file called

Write a program, and store it in a file called Travel Expenses.xlsm, that does the following: a) It asks for a person's first name and stores it in firstName; b) it asks for a person's last name and stores it in lastName

  Ticketseller

Use Visual basic 2010Visual Basic,  TicketSeller. This assignment will contain two (2) Parts: Event Planning Document and Coding phase. You must submit both parts as separate files for the completion of this assignment. Remember, you are only to de..

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