ScholarMatic | 24/7 Homework Help

ScholarMatic Will Help You Write Your Essays and Term Papers

Answered » You can buy a ready-made answer or pick a professional tutor to order an original one.

help with parser- in flex and bison

by | Nov 30, 2023 | questions

The
second project involves writing the syntactic analyzer for the compiler that
was begun in the previous project. The grammar of the language is the
following:

program:

{function}

function:

FUNCTION IDENTIFIER [parameters]
RETURNS type; body

parameters:

parameter{, parameter}

parameter:

IDENTIFIER: type

type:

INTEGER |REAL |BOOLEAN

body:

{variable}BEGIN statementEND;

variable:

IDENTIFIER:typeISstatement

statement:

expression ; |

IF expression THEN statement ELSE statement ENDIF ;

expression:

IDENTIFIER |

IDENTIFIER (expression{, expression}) |

INT_LITERAL | REAL_LITERAL
| BOOLEAN_LITERAL

expression operator
expression |

(expression)

operator: ADDOP
| MULOP | RELOP
| AND | OR | NOT

In
the above grammar, the red symbols are nonterminals, the blue symbols are
terminals and the black punctuation are EBNF metasymbols. The braces denote
repetition 0 or more times and the brackets denote optional.

The
grammar must be rewritten to eliminate the EBNF brace and bracket metasymbols
and to incorporate the significance of parentheses, operator precedence and
left associativity for all operators. Among arithmetic operators the
multiplying operators have higher precedence than the adding operators. All
relational operators have the same precedence. Among the binary logical
operators,and has higher precedence thanor. Of the categories
of operators, the unary logical operator has highest precedence, the arithmetic
operators have next highest precedence, followed by the relational operators
and finally the binary logical operators.The directives to specify
precedence and associativity, such as%prec and%left, may not be used

The
syntactic analyzer should be created using bison. It should detect and recover
from syntax errors to the extent possible. The semicolon should be used as the
primary synchronization token. The compiler should produce a listing of the
program with error messages included after the line in which they occur. A
count of the number of lexical and syntactic errors and the number of total
errors should follow the compilation listing.

Your
parser should, however, be able to correctly parse any syntactically correct
program without any problem.

You
will lose points from the design portion of your grade if your bison input
produces any shift/reduce or reduce/reduce errors.

The
70 points that you will receive for the functionality portion of your grade on
this project will be based two criteria shown below:

Parses
all syntactically correct programs

40
points

Detects
and recovers from errors in the function header

5
points

Detects
and recovers from errors in variable declarations

5
points

Detects
and recovers from errors in conditional expressions

5
points

Detects
and recovers from errors in arithmetic expressions

5
poinst

Detects
and recovers from errors in the function body

5
points

Detects
and recovers from multiple errors

5
points

ScholarMatic: Explanation & Answer

Your ready answer from a verified tutor is just a click away for as little as $14.99


  

Click Order Now to get 100% Original Answer Customized to your instructions!

HOME TO CERTIFIED WRITERS

Why Place An Order With Us?

  • Certified Editors
  • 24/7 Customer Support
  • Profesional Research
  • Easy to Use System Interface
  • Student Friendly Pricing

Have a similar question?

PLAGIRAISM FREE PAPERS

All papers we provide are well-researched, properly formatted and cited.

TOP QUALITY

All papers we provide are well-researched, properly formatted and cited.

HIGHLY SECURED

All papers we provide are well-researched, properly formatted and cited.

ScholarMatic: Get Started

Assignment Writing Service

Feel safe and secure when placing an order on our portal!
Fruitful cooperation begins with solid guarantees, and we are professional enough to promise perfect results. Let’s get it started!