Project 1b

Project1a introduced you to the GRAPH system and asked you to do some set up.

Project1b asks you to fix some annoyances with GRAPH.

Submission

Follow the instructions in How to submit using (say)

cd cs310/proj1b
make submit

Understanding the Failures

Here's the problem: the current implementation of GRAPH is broken and you have to fix it. Here's the current output

cd proj1
make tests

PASSED 1
PASSED 2
PASSED 3
PASSED 4
?? line 12: [tags  2 things]
FAILED 5, got /Users/timm/tmp/5.got
?? line 26: [tags  3 boys 7 girls  ]
FAILED 6, got /Users/timm/tmp/6.got
?? line 6: [tags  3 apples 10 oranges 16 pears]
FAILED 7, got /Users/timm/tmp/7.got
?? line 5: [tag 2 things 7 *]
FAILED 8, got /Users/timm/tmp/8.got
?? line 6: [tag 3 boys 7 *]
?? line 7: [tag 7 girls 13 +]
FAILED 9, got /Users/timm/tmp/9.got
?? line 3: [tag 3 apple 7 *]
?? line 4: [tag 10 oranges 24 +]
?? line 5: [tag 16 pears 16 $]
FAILED 10, got /Users/timm/tmp/10.got

Tests 5,6,7 are failing because they do not add in the tags below histograms >Tests 8,9,10 are failing because they inputs use a shorthand notation to specify the bar charts that GRAPH does not (yet) understand. And if you don't understand all that, re-read the notes about GRAPH (see the annoyances section).

You can kind of guess what is coming.

What to do

  1. Edit the file Makefile and change the following lines:
    Group=11112222
    Proj=1b
    
    Make the Group the last four digits of the IDs of the two members of this group. And make the Proj the current project number (1). <
  2. Fix tests 5,6,7. To do this, you have to change proj1/graph.awk. In my implementation, the change required to implement tags was about 10 lines long. Your task is to work out what ten lines to add.
  3. To fix tests 8,9,10 you have to:

Testing

You can test your code with

make score
Note that you should be scoring 10/10 PASSes

Marking

Note that when you submit your files, my code will revert your eg/[1..9] files and eg/[1..9].want to their original contents. Also, there will be ten more tests (that you won't see prior to submission) run through your code.

That is, prior to submission, you can probe your code using at least half the tests that will be applied to them after submission.