building ast's for rpal programs
DESCRIPTION
Building AST's for RPAL Programs. Programming Language Concepts Lecture 14. Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida. Let's Build a Few Abstract Syntax Trees. Example 1: Factorial, version 3. Example 2: Palindrome. Example 3: Add numbers from list. - PowerPoint PPT PresentationTRANSCRIPT
Building AST's for RPAL Programs
Prepared by
Manuel E. Bermúdez, Ph.D.Associate ProfessorUniversity of Florida
Programming Language ConceptsLecture 14
Let's Build a Few Abstract Syntax Trees
• Example 1: Factorial, version 3.
• Example 2: Palindrome.
• Example 3: Add numbers from list.
• Example 5: Build tuple of pairs of characters.
Class Project
• Build a recursive descent parser for RPAL (gulp!)
• If done properly, it's easy.• Need lexical analyzer, to be called
repeatedly (important!) by the parser. Avoid scanning the entire input in advance of the parser.
Class Project (cont’d)
• Code up one procedure per nonterminal in RPAL's grammar.
• Pseudo code for some portions of RPAL’s grammar
Class Project (cont’d)
• Implement support module for trees, and stack of trees.• Suggestion: use first-child, next-
sibling binary tree representation of n-ary trees (it works!).
• Preorder traversal of this tree is the same as for n-ary tree.
• Popping n trees from the stack, and building a parent node on top of them, is easy.
Building AST's for RPAL Programs
Prepared by
Manuel E. Bermúdez, Ph.D.Associate ProfessorUniversity of Florida
Programming Language ConceptsLecture 14