Question
Consider a fictitious programming language containing only two numerical types (integer and real), in which arbitrarily long (possibly empty) 1-dimensional arrays of numbers are declared,
Consider a fictitious programming language containing only two numerical types (integer and real), in which arbitrarily long (possibly empty) 1-dimensional arrays of numbers are declared, instantiated, and initialized in a single statement, two of which are given below:
integer[] numbers = { 1, 5, 7, 9, 10 };
real[] reals = { 2.0, 3.35, 1.24, 54.145, -4.9 };
Write an EBNF grammar with as its start symbol that can generate all and only the syntactically correct array declarations of this form. Instead of creating rules to generate the set of all possible identifiers (variable names), integer constants, and floating point constants, your grammar must refer to the non-terminals , , and , which can be assumed to be already defined elsewhere. (To think about: Why does it make sense for these non-terminals to be defined in another grammar, or in a distinct part of the grammar?) For full credit, you MUST use EBNF extensions WHENEVER possible to minimize the number of productions in your grammar.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started