logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

Calculate the area of a triangle PRINT  "This program calculates " PRINTLN "the area of a triangle" PRINT "ENTER BASE:

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Q. 1 We are going to combine some parts of Lab 3 with Lab

    1. Create a new project called Lab5 in Netbeans, Eclipse, etc
    2. In ANTLRWorks, open both the expr.g and Lab4.grammars
    3. Copy the expr rule and all its dependent rules to Lab4.g. Put them just below the rules for PRINT and PRINTLN
    4. Copy the @members from expr.g to Lab4.g. Copy the import for HashMap to Lab5
    5. Set Lab4 grammar preferences to output to the Lab5 directory
    6. Generate the modified Lab4 grammar.
    7. Back in your IDE (Netbeans, etc) add the imports and code to main from Lab4
    8. Create an input file with these statements:

PRINTLN "We CAN NOW DO EXPRESSION EVALUATION"

PRINTLN 2*2

PRINTLN 4+5*3

PRINT "20/4="

PRINTLN 20/4

  1. Run the program in your IDE. Should get everything up to PRINTLN 20/4
  2. Go back to ANTLRWorks. Carefully examine the rule for ‘*’. Create a similar rule for /. Look at how the rule expr is structured to understand how to change the multexpr rule
  3. Generate the grammar. Return to your IDE. Run the program. It should now do the division operation
  4. Submit your modified Lab4 grammar to BB dropbox for Lab5

 

Q. 2 In Lab 5 we added expression evaluation but didn't do any variables. Today we are adding the "LET" statement rule to our grammar. LET is essentially an assignment statement similar to that of BASIC. Sample LET statements:

  1. LET A = 1
  2. LET B = A * 8
  3. LET C = A*B + B/2 - (A+3)

 

 

Use the same project from Lab 5 and just add to the ANTLR grammar the rules or edit the rules as needed. Your SIL interpreter should be able to run this program after the changes:

LET A = 4 LET B = 5

LET C = A * B + 7 PRINT A

PRINT " * " PRINT B PRINT " + 7 = " PRINTLN C

which makes this output : 4 * 5 + 7 = 27

Submit the grammar to BB Dropbox Lab 6

Q. 3 In this lab we will add two commands to our language (called Simple Interpreted Language (SIL)): INTEGER and INPUT

The syntax of INTEGER is INTEGER ID [,ID]*

At least one, and possibly (somewhat smaller than infinite) any number more, variables are defined by this statement. IDs must be defined before use or an error is raised “Undefined ID”. Variables must be defined in the INTEGER statement. IDs may not be repeated. If an ID is repeated raise an error “Error: ID (its actual name) already defined”. IDs are stored in the symbol table and initialized to 0. This rule makes SIL an explicit declaration language.

The syntax of INPUT is INPUT ID [,ID]*

At least one, and possibly (somewhat smaller than infinite) any number more, variables are read from the keyboard by this statement. IDs must be defined before use or an error is raised “Undefined ID”. Variables must have been defined in the INTEGER statement. When a value is

obtained for a variable, search the symbol table for the ID and if found store the value with the ID.

This is the ANTLR grammar rules needed for INTEGER:

integer :

'INTEGER' idlist;

idlist : idname (',' idname)*;

idname : ID {if(symtab.containsKey($ID.text))

System.out.println("Error: "+$ID.text+

" already defined");

else

symtab.put($ID.text, 0); };

The ANTLR rules for INPUT are structured identically, but of course the actions are different. I used a “Scanner” as defined in import java.util.Scanner; A Scanner is a simple IO stream that can parse int, double, etc.

Sample program 1

PRINTLN "Calculate Payroll - Double Pay Overtime" PRINT "Enter rate of pay:"

INTEGER rate, hours, overtime_hours, netpay INPUT rate

PRINT "Enter hours up to 40:" INPUT hours

PRINT "Enter overtime hours:" INPUT overtime_hours

LET netpay = rate * hours + rate * overtime_hours * 2 PRINT "Your net pay = "

PRINTLN netpay

Sample program 2

/Calculate the area of a triangle PRINT  "This program calculates " PRINTLN "the area of a triangle" PRINT "ENTER BASE:"

INTEGER BASE, HEIGHT, AREA INPUT BASE

PRINT "ENTER HEIGHT:" INPUT HEIGHT

LET AREA = (BASE * HEIGHT) / 2 PRINT "AREA = "

PRINTLN AREA

Sample program 3

//Multiple inputs on a single INPUT

PRINT “Enter A, B, and C:”

INTEGER A,B,C,D INPUT A, B, C

PRINT “B*B – 4*A*C =” LET D = B*B-4*A*C PRINTLN D

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

539 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

881 Answers

Hire Me
expert
Husnain SaeedComputer science

570 Answers

Hire Me
expert
Atharva PatilComputer science

911 Answers

Hire Me
June
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30