Final Exam CSU 670 Fall 2005 Karl Lieberherr Answer Form Question 1: ================================================== UNKNOWN1 = from Exps via Sequential to ClassName UNKNOWN2 = new Visitor() { public void start() { System.out.println("start with ClassName printing");}; public void before(ClassName host){ host.print(); System.out.println(); } public void finish() { System.out.println("done with ClassName printing");}; } UNKNOWN3 = ClassName ClassName_CommaList Compound Equation Equation_CommaList Exists Exp Exp_CommaList Exps Nonempty_ClassName_CommaList Nonempty_Equation_CommaList Nonempty_Exp_CommaList QuantifierCompound Sequential Simple UNKNOWN4 = from Exps to {Forward, Backward} UNKNOWN5 = new Visitor() { public void before(Forward host){ if (host.steps == null) host.set_steps(new Unlimited()); } public void before(Backward host){ if (host.steps == null) host.set_steps(new Unlimited()); } } UNKNOWN6 = ClassName A UNKNOWN7 = ClassName B UNKNOWN8 = ClassName A UNKNOWN9 = ClassName B UNKNOWN10 = ClassName A UNKNOWN11 = ClassName X UNKNOWN12 = ClassName B UNKNOWN13 = ClassName A UNKNOWN14 = ClassName X UNKNOWN15 = ClassName B UNKNOWN16 = ClassName A UNKNOWN17 = ClassName B UNKNOWN18 = exists( R1 ) join( =>X<=A edge e R1, =>X<=R1 B UNKNOWN19 = ClassName R1 UNKNOWN20 = ClassName B UNKNOWN21 = ClassName R1 UNKNOWN22 = ClassName B UNKNOWN23 = ClassName A UNKNOWN24 = ClassName B UNKNOWN25 = seq A( Q, C UNKNOWN26 = Exp_CommaList UNKNOWN27 = Compound UNKNOWN28 = Join UNKNOWN29 = Exp_CommaList UNKNOWN30 = Forward UNKNOWN31 = ClassName UNKNOWN32 = A UNKNOWN33 = Limited UNKNOWN34 = 3 UNKNOWN35 = ClassName UNKNOWN36 = B UNKNOWN37 = ClassName UNKNOWN38 = B UNKNOWN39 = 2 UNKNOWN40 = C UNKNOWN41 = Exists UNKNOWN42 = X UNKNOWN43 = Join UNKNOWN44 = Forward UNKNOWN45 = A UNKNOWN46 = X UNKNOWN47 = Simple : SourceEdgeStepsTarget | Sequential. SourceEdgeStepsTarget : Forward | Backward | Later | UpOverDown common ClassName ["edge" EdgeName] [ Steps] ClassName. Question 2: ================================================== UNKNOWN1 = [ UNKNOWN2 = ;; UNKNOWN3 = ] UNKNOWN4 = *document* UNKNOWN5 = *optional* UNKNOWN6 = ~ Page {Page} UNKNOWN7 = *title* UNKNOWN8 = *version* UNKNOWN9 = *creator* UNKNOWN10 = *date* UNKNOWN11 = *bbox* UNKNOWN12 = Number Number Number Number or List(Number) UNKNOWN13 = *page* UNKNOWN14 = *rule* UNKNOWN15 = Tint UNKNOWN16 = ;; UNKNOWN17 = *dash* UNKNOWN18 = *page_attributes* UNKNOWN19 = Number UNKNOWN20 = Number UNKNOWN21 = *angle* UNKNOWN22 = *pointsize* UNKNOWN23 = *typeface* UNKNOWN24 = *color* UNKNOWN25 = *rv* UNKNOWN26 = violation 1: Square_Pattern = "*square*" Number Position Number Number. violation 2: Rule_item = [";;" Comment] Number Position Position [ Tint] [ Color] ["*dash*" Number]. violation 3: Square_Pattern = "*square*" Number Position Number Number. UNKNOWN27 = Displayable_item : Text2 | Rules | Graphics | Patterns common ["*pl*" Number]. // delete ["*pl*" Number] from the // four classes. UNKNOWN28 = Avoid duplicating ";;": Comment = ";;" String. Document = [Comment] ... Text_slug = [Comment] ... etc. UNKNOWN29 = Line 3: token *tint*