Ask Question, Ask an Expert

+1-415-315-9853

info@mywordsolution.com

Ask C/C++ Expert


Home >> C/C++

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

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

Implement the parser in a separate file (parser.c and parser.h). 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 expected and token received) 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: assume 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 completing and testing the above to satisfaction, modify each parse function to build a subtree, and return its root node. Assume 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:

->  Start Stop
   ->  { }
    ->  empty | Var ID .
   ->  empty | : ID
     ->  Void() Return(ID);
    ->  empty |
    ->  + | - |
       ->  * |
       ->  / |
       ->  - |
       ->  () | ID | NUMBER
   ->   
   ->  empty |  
    ->  | | | | |
      ->  Read (ID) ;
     ->  prepare () ;
      ->  Iff (             
    ->  While ( )
  ->  ID == ;
      ->  =< | => | = |  > | <  |  !
ex programs (assuming some standard semanticcs)

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

C/C++, Programming

  • Category:- C/C++
  • Reference No.:- M93535

Have any Question? 


Related Questions in C/C++

1 learner objectivesat the conclusion of this programming

1. Learner Objectives: At the conclusion of this programming assignment, participants should be able to: * Apply repetition structures within an algorithm * Construct while (), for (), or do-while () loops in C * Compose ...

More often than not entrepreneurs will fail several times

"More often than not, entrepreneurs will fail several times before they make it and will usually learn a lot in the process. To help these entrepreneurs to succeed will require a cultural shift. We need to encourage Aust ...

Computer programming assignment-q1 using for loop write a c

Computer Programming Assignment- Q1. Using for loop, write a C++ program that prints out the multiples of 3 up through 75, separated by a blank space.  3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 ...

Q 1 write a c program to declare two integer one float

Q. 1 Write a C++ program to declare two integer , one float variables and assign 10, 15, and 12.6 to them respectively. It then prints these values on the screen. Q. 2 Write a C++ program to prompt the user to input her/ ...

This program involves using stl listsfor this program you

This program involves using STL lists. For this program you will implement three functions whose prototypes are given below: list ::iterator mxIter(list ::iterator first, list ::iterator last); void selectSort(list & aLi ...

Only one programwrite a c program to find fibonacci numbers

Only one program Write a C++ Program to Find Fibonacci Numbers using Dynamic Programming.

C program assignmentaccording to C Program Assignment According to

C Program Assignment According to http://en.wikipedia.org/wiki/Great-circle_distance, the great circle distance based on two coordinates in nautical miles is given by: d = r * Δσ where r is the radius of the earth and Δσ ...

Descriptionnbspin this assignment you will write a c

Description:  In this assignment you will write a C++ program that finds the kth largest number among a set of N numbers. It will implement the solution using two different algorithms and measure the time elapsed during ...

Computer programmingobjectives1 opening a file reading from

Computer Programming Objectives: 1. Opening a file, reading from file, writing to a file and closing a file. 2. Sequential access files handling. 3. Practice C++ programming problems. Note: Carefully read the following i ...

Objectives- gain experience with if if else and switch

Objectives - Gain experience with if, if else, and switch statements in C programs. - Experience using % operator and true false logic. Hints This program will be MUCH easier if you design how to do the logic in your own ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

A cola-dispensing machine is set to dispense 9 ounces of

A cola-dispensing machine is set to dispense 9 ounces of cola per cup, with a standard deviation of 1.0 ounce. The manuf

What is marketingbullwhat is marketing think back to your

What is Marketing? • "What is marketing"? Think back to your impressions before you started this class versus how you

Question -your client david smith runs a small it

QUESTION - Your client, David Smith runs a small IT consulting business specialising in computer software and techno

Inspection of a random sample of 22 aircraft showed that 15

Inspection of a random sample of 22 aircraft showed that 15 needed repairs to fix a wiring problem that might compromise

Effective hrmquestionhow can an effective hrm system help

Effective HRM Question How can an effective HRM system help facilitate the achievement of an organization's strate