[SOLVED] Project 1 The first programming project involves writing a program that parses, using recursive descent, a GUI definition language defined in an input file and generates the GUI that it defines. The grammar for this language is defined below:

I’m studying for my Computer Science class and don’t understand how to answer this. Can you help me study?

Struggling to find relevant content? Order a custom essay on
[SOLVED] Project 1 The first programming project involves writing a program that parses, using recursive descent, a GUI definition language defined in an input file and generates the GUI that it defines. The grammar for this language is defined below:
Let our experts save you the hassle
Order Now

gui ::=

Window STRING ‘(‘ NUMBER ‘,’ NUMBER ‘)’ layout widgets End ‘.’

layout ::=
Layout layout_type ‘:’

layout_type ::=Flow |

Grid ‘(‘ NUMBER ‘,’ NUMBER [‘,’ NUMBER ‘,’ NUMBER] ‘)’widgets ::=

widget widgets |

widget widget ::=

Button STRING ‘;’ |
Group radio_buttons End ‘;’ |Label STRING ‘;’ |
Panel layout widgets End ‘;’ |Textfield NUMBER ‘;’

radio_buttons ::=
radio_button radio_buttons |radio_button

radio_button ::=Radio STRING ‘;’

In the above grammar, the red symbols are nonterminals, the blue symbols are tokens and the black punctuation symbols are BNF metasymbols. Among the tokens those in title case are keywords. The character literals are punctuation tokens.

Below is an explanation of the meaning of some of the symbols in the above productions that should help you understand the actions that are to be performed when each of the productions is parsed:

  • ? In the window production the string is the name that is to appear in the top border of the window and the two numbers are the width and height of the window
  • ? In the production for layout_type that define the grid layout, the first two numbers represent the number of rows and columns, and the optional next two the horizontal and vertical gaps
  • ? In the production for widget that defines a button, the string is the name of the button
  • ? In the production for widget that defines a label, the string is text that is to be placed in the label
  • ? In the production for widget that defines a text field, the number is the width of the text field
  • ? In the production for radio_button, the string is the label of the buttonYou parser should properly handle the fact that panels can be nested in other panels. Recursive productions must be implemented using recursion. Syntactically incorrect input files should detect and report the first error.

1

Below is an example of an input file:

Window “Calculator” (200, 200) Layout Flow: Textfield 20;
Panel Layout Grid(4, 3, 5, 5):

Button “7”; Button “8”; Button “9”; Button “4”; Button “5”; Button “6”; Button “1”; Button “2”; Button “3”; Label “”; Button “0”;

End; End.

The above input file should produce the GUI shown below:

Deliverables:

Deliverables for this project include the following:

  1. Source code correctly implementing all required functionality.
  2. Word or PDF file providing screen shots of successfully compiling and executing the program.
  3. Description of the process and lesson learned while completing this project (to be included inthe Word or PDF document).
  4. A test plan that contains test cases that include both layout types, all widgets and nested panels.For each test case, the input file should be shown together with the resulting GUI. (to be included in the Word or PDF document).

Calculate the price
Make an order in advance and get the best price
Pages (550 words)
$0.00
*Price with a welcome 15% discount applied.
Pro tip: If you want to save more money and pay the lowest price, you need to set a more extended deadline.
We know how difficult it is to be a student these days. That's why our prices are one of the most affordable on the market, and there are no hidden fees.

Instead, we offer bonuses, discounts, and free services to make your experience outstanding.
Sign up, place your order, and leave the rest to our professional paper writers in less than 2 minutes.
step 1
Upload assignment instructions
Fill out the order form and provide paper details. You can even attach screenshots or add additional instructions later. If something is not clear or missing, the writer will contact you for clarification.
s
Get personalized services with GPA Fix
One writer for all your papers
You can select one writer for all your papers. This option enhances the consistency in the quality of your assignments. Select your preferred writer from the list of writers who have handledf your previous assignments
Same paper from different writers
Are you ordering the same assignment for a friend? You can get the same paper from different writers. The goal is to produce 100% unique and original papers
Copy of sources used
Our homework writers will provide you with copies of sources used on your request. Just add the option when plaing your order
What our partners say about us
We appreciate every review and are always looking for ways to grow. See what other students think about our do my paper service.
Social Work and Human Services
Excellent Work!!!!
Customer 452587, November 29th, 2021
Nursing
Amazing work! I passed the assignment!
Customer 452707, August 20th, 2022
Technology
Great job on the paper!!
Customer 452885, December 14th, 2022
Human Resources Management (HRM)
Thank you so much.
Customer 452701, August 15th, 2023
IT, Web
Great job on the paper!!
Customer 452885, January 30th, 2023
Philosophy
i got the paper a bit late but it is good quality will for sure come back and use this website.
Customer 452611, September 9th, 2021
Human Resources Management (HRM)
Thanks
Customer 452701, August 22nd, 2023
Human Resources Management (HRM)
Thank you so much for your time.
Customer 452701, September 5th, 2023
English 101
I'm glad i came to you guys
Customer 452519, May 11th, 2021
Social Work and Human Services
Awesome Work!
Customer 452587, October 20th, 2021
Nursing
Thank you for a great paper!!
Customer 452707, November 28th, 2022
Nursing
Great paper!
Customer 452707, January 14th, 2024
OUR GIFT TO YOU
15% OFF your first order
Use a coupon FIRST15 and enjoy expert help with any task at the most affordable price.
Claim my 15% OFF Order in Chat

Good News ! We now help with PROCTORED EXAM. Chat with a support agent for more information