Recursive Descent Syntax Analyzer for MicroHaskell | CS 401, Assignments of Programming Languages

Material Type: Assignment; Class: Programming Languages; Subject: Computer Science; University: University of Alabama - Birmingham; Term: Spring 2005;

Typology: Assignments

Pre 2010

Uploaded on 04/12/2010

koofers-user-sv4
koofers-user-sv4 🇺🇸

9 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CS 405/505 ASSIGNMENT #4
Due Thursday, February 10, 2005
Design and implement a recursive-descent syntax analyzer for MicroHaskell which will parse pro-
grams according to the prescribed grammar and produce a syntax-tree representation of the input
program. This process has the following steps:
1. The layout of the parser should conform to the EBNF grammar of MicroHaskell given in the
previous assignment.
2. The parser should interact with the lexical analyzer to retrieve tokens as it needs them.
3. The parser may terminate execution if a syntax error is detected, printing a suitable error
message.
4. If the source program has no syntax errors, the result of the parse should be a source program
listing (e.g. this can be printed by the lexical analyzer as the program is read) and a syntax
tree representation of the major program units, e.g. each main program and method will
have a syntax tree. For convenience this syntax tree may be output at the point at which it
is generated, i.e. interleaved with the source program listing. Print the tree in Cambridge
Polish prefix notation.
Suggestion: First construct the recursive-descent parser without syntax-tree construction and once
this is working add the syntax tree construction.

Partial preview of the text

Download Recursive Descent Syntax Analyzer for MicroHaskell | CS 401 and more Assignments Programming Languages in PDF only on Docsity!

CS 405/505 ASSIGNMENT

Due Thursday, February 10, 2005

Design and implement a recursive-descent syntax analyzer for MicroHaskell which will parse pro- grams according to the prescribed grammar and produce a syntax-tree representation of the input program. This process has the following steps:

  1. The layout of the parser should conform to the EBNF grammar of MicroHaskell given in the previous assignment.
  2. The parser should interact with the lexical analyzer to retrieve tokens as it needs them.
  3. The parser may terminate execution if a syntax error is detected, printing a suitable error message.
  4. If the source program has no syntax errors, the result of the parse should be a source program listing (e.g. this can be printed by the lexical analyzer as the program is read) and a syntax tree representation of the major program units, e.g. each main program and method will have a syntax tree. For convenience this syntax tree may be output at the point at which it is generated, i.e. interleaved with the source program listing. Print the tree in Cambridge Polish prefix notation.

Suggestion: First construct the recursive-descent parser without syntax-tree construction and once this is working add the syntax tree construction.