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++

Write a program that reads numbers from cin and then sums

Write a program that reads numbers from cin and then sums them, stopping when 0 has been entered. Construct three versions of this program, using the while, do - while , and for loops. Add the following to your program: ...

1 three employees in a company are up special pay increase

1. Three employees in a company are up special pay increase. You are given a file, with the following data: Miller Andrew 65789.87 5 Green Sheila 75892.56 6 Sethi Amit 74900.50 6.1 Each input line consists of an employee ...

A compiler that translates a high-level language into

A compiler that translates a high-level language into another high-level language is called a source-to-source translator. What advantages are there to using C as a target language for a compiler?

Assignmentobjectivespractice reading characters from a

Assignment Objectives Practice reading characters from a file Practice using command line input Practice using command-line redirection of files Practice implementing a double transposition ciphering algorithm Summary In ...

Programming assignment 5write a c program that allows the

PROGRAMMING ASSIGNMENT #5 Write a C program that allows the user to make some banking transactions. The program should first prompt the user to enter the current balance of his/her bank account (in dollars and cents, not ...

1 write a c program that allows the user to create a test

1. Write a C++ program that allows the user to create a test bank of questions 2. The program should first ask the user how many questions he or she wishes to create. 3- The user should now be prompted for all informatio ...

Computer scienceyou have gathered your information on the

Computer Science You have gathered your information on the AI for the Tic-Tac-Toe game and began to develop your own ways to improve it using C++. Now, it's time to present your findings in a final paper. Remember that y ...

Assignment part acreate a checkbook program using c

Assignment (part a) Create a Checkbook program using C : • Create a Check structure. Include:   o Check number (should be an integer).   o Date (use type char[ ]).   o To   o Amount   o Description • Add functions to:   ...

Assignmentthis assignment gives you the opportunity to

Assignment This assignment gives you the opportunity to practice array of pointers, linked lists and self referential structures. Write a program that initializes two parallel arrays as follows: char * String[] = { "Abbi ...

Programming assignmentwrite a c program that allows the

PROGRAMMING ASSIGNMENT Write a C program that allows the user to make some banking transactions. The program should first prompt the user to enter the current balance of his/her bank account (in dollars and cents). The p ...

  • 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

Section onea in an atwood machine suppose two objects of

SECTION ONE (a) In an Atwood Machine, suppose two objects of unequal mass are hung vertically over a frictionless

Part 1you work in hr for a company that operates a factory

Part 1: You work in HR for a company that operates a factory manufacturing fiberglass. There are several hundred empl

Details on advanced accounting paperthis paper is intended

DETAILS ON ADVANCED ACCOUNTING PAPER This paper is intended for students to apply the theoretical knowledge around ac

Create a provider database and related reports and queries

Create a provider database and related reports and queries to capture contact information for potential PC component pro

Describe what you learned about the impact of economic

Describe what you learned about the impact of economic, social, and demographic trends affecting the US labor environmen