Implement the parser in two iterations

Assignment Help Operating System
Reference no: EM134458

The executable should be testParser .Please include makefile. Please add as many comments as you can.

Verify the below Grammar is LL(1) or rewrite as needed in an equivalent form

Implement the parser in a separate file (parser.h and parser.c). Implement the main parser function in a separate file main.c: the main function should check for command line arguments, and then call the parser function to build the tree, and then implement recursive traversal to print the tree. Make sure it will check for the EOF token.  The display is just for testing.

Implement the parser in two iterations:

1. Parser1.c : Starting without the parse tree. Have your parses generate error (print the line number and the nature of the problem such as token received and token expected) on the first error and exit, or print OK message upon successful parse.

2. For each non-terminal, use a void function named after the non-terminal. Decide how to pass the token. Be systematic: suppose each function starts with unconsumed token (not matched yet) and returns unconsumed token. The non-LL(1) non-terminals with all-common prefix - implement the shortcut to mate them LL(1) rather than explicitly performing left-factorization

3. Parser2.c : Only after testing and completing the above to satisfaction, modify each parse function to build a subtree, and return its root node. Suppose each function builds just the root and connects its subtrees. Modify the main function to receive the tree built in the parser, and then display it (for testing) using a preorder display. Add declaration file node.h

o do left to right traversal, for each new level use 2 space indentation

o when visiting a node print what the node is and what tokens it has if any, then print its children left to right the same way

o for every token, print token type, instance and line number

 Some hints for tree:

  • every node should have a label consistent with the name of the function creating it
  • every function creates exactly one tree node (or possibly none)
  • the number of children seems as 3 max but it is your decision
  • all syntactic tokens such as () can be thrown away, all other tokens need to be stored in the tree
  • when storing a token, you may need to make a copy depending on your interface

Grammar

<program> ->  Start <vars> <funs> <block> Stop
<block>   ->  { <vars> <stats> }
<vars>    ->  empty | Var ID <mvars> .
<mvars>   ->  empty | : ID <mvars>
<fun>     ->  Void() <block> Return(ID);
<funs>    ->  empty | <fun> <funs>
<expr>    ->  <T> + <expr> | <T> - <expr> | <T>
<T>       ->  <F> * <T> | <F>
<F>       ->  <G> / <F> | <G>
<G>       ->  - <G> | <R>
<R>       ->  (<expr>) | ID | NUMBER 
<stats>   ->  <stat>  <mStat>
<mStat>   ->  empty | <stat>  <mStat>
<stat>    ->  <in> | <out> | <block> | <if> | <loop> | <assign>
<in>      ->  Read (ID) ;
<out>     ->  Write (<expr>) ;
<if>      ->  Iff ( <expr> <RO> <expr> )  <block>             
<loop>    ->  While ( <expr> <RO> <expr> ) <block>
<assign>  ->  ID == <expr> ;
<RO>      ->  =< | => | = |  > | <  |  !

Example programs (assuming some standard semanticcs)

&short program prints 0
Start {
  Write (0);
} Stop
 
&program echoes input*2
Start
  Var x.
  { Read (x);
     Write (2*x);
  }
Stop
    
&print absolute value
Start {
  Var x: y;
  Read (x);
  Iff (x<0) {
    y == -x;
  }
  Write (y);
} Stop

Reference no: EM134458

Questions Cloud

Potential impact of the google glass on personal computing : The Potential Impact of the Google Glass on Personal Computing
Case study on the pkolino : Case study on the Pkolino Question based on Case study Provide a summary of the Pkolino ‘story' Is the business plan thorough as well as capture all of the learning that Antonio and JB have accumulated?
Outline what you know about plasmonics : Outline what you know about Plasmonics? Outline what you know about Raman spectroscopy and surface enhanced Raman spectroscopy?
Evaluate various claims made by the union and counterclaims : Evaluate the various claims made by the union and counterclaims made by the company regarding the charges of unfair labor practices. Which of the arguments are most persuasive?
Implement the parser in two iterations : Implement the parser in a separate file. Implement the main parser function in a separate file main.c
Prepare the consolidated financial statements : Prepare the consolidated financial statements for 20X3 using the direct method. Using the deferral method, prepare a statement of revenues and expenses and a statement of changes in net assets for Wise Owls for 20X1.
Prepare vertical common-size financial statements : Prepare vertical common-size balance sheets and income statements for both companies.
Find the area between them bounded by the given value : The following pairs of functions, graph each one together in Desmos, show on your graph and find the area between them bounded by the given values of x.
Calculate mortgage rates and production lot size : Calculate mortgage rates, production lot size, forecast the demand for the products, track epidemics and their spread, help solve crimes, even help estimate tax revenues.

Reviews

Write a Review

Operating System Questions & Answers

  Discuss an application that benefits barrier synchronization

Discuss an application that would benefit from the use of barrier synchronization

  Explain the client-server architecture

What are the three different categories of command, support your answer by giving three examples. Give three good reasons, with valid explanation, to justify why partitioning hard disk provides a variety of advantages. Explain the client/server..

  Stand alone child process

Forking the child process

  Memory allocation in operating system

Analysis and implementation of algorithms for memory allocation in operating system, Explain First- t and best- t methods are used in memory allocation in operating systems.

  Design and programming

Use the semaphore methods to control the concurrency of the solution

  Marginal and average cost curves

n a competitive market place (pure competition) is it possible to continually sell your product at a price above the average cost of production.

  Implementation of algorithms for process management

The Shortest Job Next (SJN) algorithm queues processes in a way that the ones that use the shortest CPU cycle will be selected for running rst.

  Explain deadlock-avoidance system

What is the difference between a safe state and an unsafe state in a deadlock-avoidance system?

  Threads

Explain a complication that concurrent processing adds to an operating system.

  Describe three solutions to critical section problem

Describe three solutions to critical section problem Explain the different methods used to handle deadlocks Distinguish between "No preemption" and "circular wait" in deadlocks prevention

  Analyse the different methods for collecting data

Analyse the different methods for collecting data Explain by taking examples 3 types of Sampling techniques.

  What is life cycle costing

What is Life Cycle Costing. Describe briefly the methodology for Life Cycle Costing. What are the criteria to consider when a procurement officer is faced with the decision of procuring a used equipment instead of a new one.

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