E -> E op E E -> E [E] E -> id | integerLiteral op -> + | - | *
x = this.foo(1, 3, false);(i.e. describe all the things you must check for correctness.)
SUBJECT ID : S10 CRITERIA 2304 : operations CATEGORY 4240 : does not apply CARDS: 4 6 7 10 13 14 15 16 18 19 21 23 26 CATEGORY 4241 : objects in the operation CARDS: 5 11 17 22 25 CATEGORY 4242 : coding features to change the object CARDS: 8 9 12 20 24 CATEGORY 4243 : names of the operation CARDS: 1 2 3 CRITERIA 2305 : things i learned in computer science CATEGORY 4244 : CS I CARDS: 1 3 5 7 8 9 10 13 17 20 CATEGORY 4245 : CS II CARDS: 2 11 12 14 16 18 19 21 24 25 26 CATEGORY 4246 : Data Structures CARDS: 4 22 CATEGORY 4247 : haven't learned CARDS: 6 15 23 CRITERIA 2306 : places i usually define things, make things, create CATEGORY 4248 : does not apply CARDS: 4 6 7 10 15 23 CATEGORY 4249 : defined outside of method CARDS: 2 5 11 14 17 18 19 25 CATEGORY 4250 : made or constructed inside method CARDS: 1 3 8 9 12 13 16 20 21 22 24 26 * SUBJECT ID : S09 CRITERIA 2300 : things at same level in terms of abstraction when you write a program CATEGORY 4227 : synonyms for function CARDS: 1 2 3 CATEGORY 4228 : broad terms looking at program from high level CARDS: 5 7 15 CATEGORY 4229 : things you might see within a method CARDS: 8 9 12 16 19 20 21 24 CATEGORY 4230 : things you would see in a class CARDS: 11 17 18 25 CATEGORY 4231 : things that don't fit in the others CARDS: 4 6 10 13 14 22 23 26Each set of data for a subject begins with the keyword SUBJECTID a ':' and then some string that starts with S or E and is followed by integers. The data is then grouped by CRITERIA, with several CATEGORYs in the criteria, each having a set of CARDS. The data for a particular subject ends when either we hit an asterisk, in which case it will be followed by another subject, or if we hit the end-of-file, in which case there is no more data.
The format we want to put the data in is:
4240,S10,2304,does not apply,00010110010011110110101001 4241,S10,2304,objects in the operation,00001000001000001000010010 4242,S10,2304,coding features to change the object,00000001100100000001000100 4243,S10,2304,names of the operation,11100000000000000000000000 4244,S10,2305,CS I,10101011110010001001000000 4245,S10,2305,CS II,01000000001101010110100111 4246,S10,2305,Data Structures,00010000000000000000010000 4247,S10,2305,haven't learned,00000100000000100000001000 4248,S10,2306,does not apply,00010110010000100000001000 4249,S10,2306,defined outside of method,01001000001001001110000010 4250,S10,2306,made or constructed inside method,10100001100110010001110101In this comma-separated format, the line holds the category number, the subject id, the category name, and a 26-length vector of 0's and 1's indicating which cards are in the category described by this line.