The notation for grammars in this question uses the following conventions, similar to those used in the course: ::= in a rule means that the symbol to its left-hand-side is defined by the symbols to the right-hand side. • A semicolon marks the end of each 'rule'. Parentheses group multiple symbols as a single item. • A? means the preceding symbol or group is optional. • A * means the preceding symbol or group occurs zero or more times. • A | separates alternative symbols or groups. Items enclosed in single quotes represent literal text (e.g., represents a single-character plus symbol). Items in upper-case (e.g., IDENTIFIER) represent symbols identified by a tokenizer (lexical analyser).

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Help me please

4.
The notation for grammars in this question uses the following
conventions, similar to those used in the course:
::= in a rule means that the symbol to its left-hand-side is defined by
the symbols to the right-hand side.
• A semicolon marks the end of each 'rule'.
• Parentheses group multiple symbols as a single item.
A ? means the preceding symbol or group is optional.
• A * means the preceding symbol or group occurs zero or more times.
A | separates alternative symbols or groups.
Items enclosed in single quotes represent literal text (e.g.,
represents a single-character plus symbol).
Items in upper-case (e.g., IDENTIFIER) represent symbols identified
by a tokenizer (lexical analyser).
Transcribed Image Text:4. The notation for grammars in this question uses the following conventions, similar to those used in the course: ::= in a rule means that the symbol to its left-hand-side is defined by the symbols to the right-hand side. • A semicolon marks the end of each 'rule'. • Parentheses group multiple symbols as a single item. A ? means the preceding symbol or group is optional. • A * means the preceding symbol or group occurs zero or more times. A | separates alternative symbols or groups. Items enclosed in single quotes represent literal text (e.g., represents a single-character plus symbol). Items in upper-case (e.g., IDENTIFIER) represent symbols identified by a tokenizer (lexical analyser).
(e) You have been given the following fragment of a grammar
intended for adding a for-loop to the Jack language:
for-loop ::= 'for' IDENTIFIER 'in' expr-list 'do' block ;
expr-list ::= expr ( ',' expr-list ) ? ;
Write pseudocode for recursive-descent parsing routines for the
for-loop and expr-list rules of this fragment. You may
assume that parsing routines for block and expr are already
available and you should not write those. Both will return true if
they successfully parse those particular constructs and your
routines should do the same. If a syntax error is encountered your
code should simply call an error routine which will terminate the
parse. You may assume that the current lookahead lexical token is
available in a variable called token and the next token is assigned
to that variable by a call to nextToken.
[8 marks]
Transcribed Image Text:(e) You have been given the following fragment of a grammar intended for adding a for-loop to the Jack language: for-loop ::= 'for' IDENTIFIER 'in' expr-list 'do' block ; expr-list ::= expr ( ',' expr-list ) ? ; Write pseudocode for recursive-descent parsing routines for the for-loop and expr-list rules of this fragment. You may assume that parsing routines for block and expr are already available and you should not write those. Both will return true if they successfully parse those particular constructs and your routines should do the same. If a syntax error is encountered your code should simply call an error routine which will terminate the parse. You may assume that the current lookahead lexical token is available in a variable called token and the next token is assigned to that variable by a call to nextToken. [8 marks]
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Knowledge Booster
Software products
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education