Content-Type: text/html CFG to LL1 Table

Quiz CFG to LL1 Table



 Wrong  This cell contains an answer that does not belong. 
 Missing  This cell is missing a correct answer. 

  ( ) * + , - . / : := ; < <= <> = > >= Boolean EOF False Float Integer String True and begin div do downto else end for function identifier if mod not or procedure program read repeat stringLiteral then to unsignedFloat unsignedInteger until var while write writeln
<SystemGoal>
<Progrm>
<ProgramHeading>
<Block>
<VariableDeclarationPart>
<VariableDeclarationTail>
<VariableDeclaration>
<Type>
<ProcedureAndFunctionDeclarationPart>
<ProcedureDeclaration>
<FunctionDeclaration>
<ProcedureHeading>
<FunctionHeading>
<OptionalFormalParameterList>
<FormalParameterSectionTail>
<FormalParameterSection>
<ValueParameterSection>
<VariableParameterSection>
<StatementPart>
<CompoundStatement>
<StatementSequence>
<StatementTail>
<Statement>
<EmptyStatement>
<ReadStatement>
<ReadParameterTail>
<ReadParameter>
<WriteStatement>
<WriteParameterTail>
<WriteParameter>
<AssignmentStatement>
<IfStatement>
<OptionalElsePart>
<RepeatStatement>
<WhileStatement>
<ForStatement>
<ControlVariable>
<InitialValue>
<StepValue>
<FinalValue>
<ProcedureStatement>
<OptionalActualParameterList>
<ActualParameterTail>
<ActualParameter>
<Expression>
<OptionalRelationalPart>
<RelationalOperator>
<SimpleExpression>
<TermTail>
<OptionalSign>
<AddingOperator>
<Term>
<FactorTail>
<MultiplyingOperator>
<Factor>
<ProgramIdentifier>
<VariableIdentifier>
<ProcedureIdentifier>
<FunctionIdentifier>
<BooleanExpression>
<OrdinalExpression>
<IdentifierList>
<IdentifierTail>
1. <SystemGoal> --> <Progrm> EOF
2. <Progrm> --> <ProgramHeading> ; <Block> .
3. <ProgramHeading> --> program <ProgramIdentifier>
4. <Block> --> <VariableDeclarationPart> <ProcedureAndFunctionDeclarationPart> <StatementPart>
5. <VariableDeclarationPart> --> var <VariableDeclaration> ; <VariableDeclarationTail>
6. <VariableDeclarationPart> --> lambda
7. <VariableDeclarationTail> --> <VariableDeclaration> ; <VariableDeclarationTail>
8. <VariableDeclarationTail> --> lambda
9. <VariableDeclaration> --> <IdentifierList> : <Type>
10. <Type> --> Integer
11. <Type> --> Float
12. <Type> --> String
13. <Type> --> Boolean
14. <ProcedureAndFunctionDeclarationPart> --> <ProcedureDeclaration> <ProcedureAndFunctionDeclarationPart>
15. <ProcedureAndFunctionDeclarationPart> --> <FunctionDeclaration> <ProcedureAndFunctionDeclarationPart>
16. <ProcedureAndFunctionDeclarationPart> --> lambda
17. <ProcedureDeclaration> --> <ProcedureHeading> ; <Block> ;
18. <FunctionDeclaration> --> <FunctionHeading> ; <Block> ;
19. <ProcedureHeading> --> procedure <ProcedureIdentifier> <OptionalFormalParameterList>
20. <FunctionHeading> --> function <FunctionIdentifier> <OptionalFormalParameterList> : <Type>
21. <OptionalFormalParameterList> --> ( <FormalParameterSection> <FormalParameterSectionTail> )
22. <OptionalFormalParameterList> --> lambda
23. <FormalParameterSectionTail> --> ; <FormalParameterSection> <FormalParameterSectionTail>
24. <FormalParameterSectionTail> --> lambda
25. <FormalParameterSection> --> <ValueParameterSection>
26. <FormalParameterSection> --> <VariableParameterSection>
27. <ValueParameterSection> --> <IdentifierList> : <Type>
28. <VariableParameterSection> --> var <IdentifierList> : <Type>
29. <StatementPart> --> <CompoundStatement>
30. <CompoundStatement> --> begin <StatementSequence> end
31. <StatementSequence> --> <Statement> <StatementTail>
32. <StatementTail> --> ; <Statement> <StatementTail>
33. <StatementTail> --> lambda
34. <Statement> --> <EmptyStatement>
35. <Statement> --> <CompoundStatement>
36. <Statement> --> <ReadStatement>
37. <Statement> --> <WriteStatement>
38. <Statement> --> <AssignmentStatement>
39. <Statement> --> <IfStatement>
40. <Statement> --> <WhileStatement>
41. <Statement> --> <RepeatStatement>
42. <Statement> --> <ForStatement>
43. <Statement> --> <ProcedureStatement>
44. <EmptyStatement> --> lambda
45. <ReadStatement> --> read ( <ReadParameter> <ReadParameterTail> )
46. <ReadParameterTail> --> , <ReadParameter> <ReadParameterTail>
47. <ReadParameterTail> --> lambda
48. <ReadParameter> --> <VariableIdentifier>
49. <WriteStatement> --> write ( <WriteParameter> <WriteParameterTail> )
50. <WriteStatement> --> writeln ( <WriteParameter> <WriteParameterTail> )
51. <WriteParameterTail> --> , <WriteParameter> <WriteParameterTail>
52. <WriteParameterTail> --> lambda
53. <WriteParameter> --> <OrdinalExpression>
54. <AssignmentStatement> --> <VariableIdentifier> := <Expression>
55. <AssignmentStatement> --> <FunctionIdentifier> := <Expression>
56. <IfStatement> --> if <BooleanExpression> then <Statement> <OptionalElsePart>
57. <OptionalElsePart> --> else <Statement>
58. <OptionalElsePart> --> lambda
59. <RepeatStatement> --> repeat <StatementSequence> until <BooleanExpression>
60. <WhileStatement> --> while <BooleanExpression> do <Statement>
61. <ForStatement> --> for <ControlVariable> := <InitialValue> <StepValue> <FinalValue> do <Statement>
62. <ControlVariable> --> <VariableIdentifier>
63. <InitialValue> --> <OrdinalExpression>
64. <StepValue> --> to
65. <StepValue> --> downto
66. <FinalValue> --> <OrdinalExpression>
67. <ProcedureStatement> --> <ProcedureIdentifier> <OptionalActualParameterList>
68. <OptionalActualParameterList> --> ( <ActualParameter> <ActualParameterTail> )
69. <OptionalActualParameterList> --> lambda
70. <ActualParameterTail> --> , <ActualParameter> <ActualParameterTail>
71. <ActualParameterTail> --> lambda
72. <ActualParameter> --> <OrdinalExpression>
73. <Expression> --> <SimpleExpression> <OptionalRelationalPart>
74. <OptionalRelationalPart> --> <RelationalOperator> <SimpleExpression>
75. <OptionalRelationalPart> --> lambda
76. <RelationalOperator> --> =
77. <RelationalOperator> --> <
78. <RelationalOperator> --> >
79. <RelationalOperator> --> <=
80. <RelationalOperator> --> >=
81. <RelationalOperator> --> <>
82. <SimpleExpression> --> <OptionalSign> <Term> <TermTail>
83. <TermTail> --> <AddingOperator> <Term> <TermTail>
84. <TermTail> --> lambda
85. <OptionalSign> --> +
86. <OptionalSign> --> -
87. <OptionalSign> --> lambda
88. <AddingOperator> --> +
89. <AddingOperator> --> -
90. <AddingOperator> --> or
91. <Term> --> <Factor> <FactorTail>
92. <FactorTail> --> <MultiplyingOperator> <Factor> <FactorTail>
93. <FactorTail> --> lambda
94. <MultiplyingOperator> --> *
95. <MultiplyingOperator> --> /
96. <MultiplyingOperator> --> div
97. <MultiplyingOperator> --> mod
98. <MultiplyingOperator> --> and
99. <Factor> --> unsignedInteger
100. <Factor> --> unsignedFloat
101. <Factor> --> stringLiteral
102. <Factor> --> True
103. <Factor> --> False
104. <Factor> --> not <Factor>
105. <Factor> --> ( <Expression> )
106. <Factor> --> <FunctionIdentifier> <OptionalActualParameterList>
107. <ProgramIdentifier> --> identifier
108. <VariableIdentifier> --> identifier
109. <ProcedureIdentifier> --> identifier
110. <FunctionIdentifier> --> identifier
111. <BooleanExpression> --> <Expression>
112. <OrdinalExpression> --> <Expression>
113. <IdentifierList> --> identifier <IdentifierTail>
114. <IdentifierTail> --> , identifier <IdentifierTail>
115. <IdentifierTail> --> lambda
116. <Factor> --> <VariableIdentifier>

  ( ) * + , - . / : := ; < <= <> = > >= Boolean EOF False Float Integer String True and begin div do downto else end for function identifier if mod not or procedure program read repeat stringLiteral then to unsignedFloat unsignedInteger until var while write writeln
<SystemGoal>                                                                               1                        
<Progrm>                                                                               2                        
<ProgramHeading>                                                                               3                        
<Block>                                                   4             4           4                   4      
<VariableDeclarationPart>                                                   6             6           6                   5      
<VariableDeclarationTail>                                                   8             8 7         8                          
<VariableDeclaration>                                                                   9                                    
<Type>                                   13     11 10 12                                                          
<ProcedureAndFunctionDeclarationPart>                                                   16             15           14                          
<ProcedureDeclaration>                                                                             17                          
<FunctionDeclaration>                                                                 18                                      
<ProcedureHeading>                                                                             19                          
<FunctionHeading>                                                                 20                                      
<OptionalFormalParameterList> 21               22   22                                                                                  
<FormalParameterSectionTail>   24                 23                                                                                  
<FormalParameterSection>                                                                   25                             26      
<ValueParameterSection>                                                                   27                                    
<VariableParameterSection>                                                                                                 28      
<StatementPart>                                                   29                                                    
<CompoundStatement>                                                   30                                                    
<StatementSequence>                     31                             31         31 31   31 31           31 31           31   31 31 31
<StatementTail>                     32                                       33                                 33        
<Statement>                     34                             35       34 34 42   38,43 39           36 41           34   40 37 37
<EmptyStatement>                     44                                     44 44                                 44        
<ReadStatement>                                                                                 45                      
<ReadParameterTail>   47     46                                                                                              
<ReadParameter>                                                                   48                                    
<WriteStatement>                                                                                                     49 50
<WriteParameterTail>   52     51                                                                                              
<WriteParameter> 53     53   53                           53       53                   53     53           53     53 53          
<AssignmentStatement>                                                                   54,55                                    
<IfStatement>                                                                     56                                  
<OptionalElsePart>                     58                                     57,58 58                                 58        
<RepeatStatement>                                                                                   59                    
<WhileStatement>                                                                                                   60    
<ForStatement>                                                               61                                        
<ControlVariable>                                                                   62                                    
<InitialValue> 63     63   63                           63       63                   63     63           63     63 63          
<StepValue>                                                         65                               64              
<FinalValue> 66     66   66                           66       66                   66     66           66     66 66          
<ProcedureStatement>                                                                   67                                    
<OptionalActualParameterList> 68 69 69 69 69 69   69     69 69 69 69 69 69 69               69   69 69 69 69 69         69   69           69 69     69        
<ActualParameterTail>   71     70                                                                                              
<ActualParameter> 72     72   72                           72       72                   72     72           72     72 72          
<Expression> 73     73   73                           73       73                   73     73           73     73 73          
<OptionalRelationalPart>   75     75           75 74 74 74 74 74 74                     75 75 75 75                         75 75     75        
<RelationalOperator>                       77 79 81 76 78 80                                                                      
<SimpleExpression> 82     82   82                           82       82                   82     82           82     82 82          
<TermTail>   84   83 84 83         84 84 84 84 84 84 84                     84 84 84 84             83           84 84     84        
<OptionalSign> 87     85   86                           87       87                   87     87           87     87 87          
<AddingOperator>       88   89                                                               90                            
<Term> 91                                     91       91                   91     91           91     91 91          
<FactorTail>   93 92 93 93 93   92     93 93 93 93 93 93 93               92   92 93 93 93 93         92   93           93 93     93        
<MultiplyingOperator>     94         95                                 98   96                 97                                
<Factor> 105                                     103       102                   106,116     104           101     100 99          
<ProgramIdentifier>                                                                   107                                    
<VariableIdentifier>                                                                   108                                    
<ProcedureIdentifier>                                                                   109                                    
<FunctionIdentifier>                                                                   110                                    
<BooleanExpression> 111     111   111                           111       111                   111     111           111     111 111          
<OrdinalExpression> 112     112   112                           112       112                   112     112           112     112 112          
<IdentifierList>                                                                   113                                    
<IdentifierTail>         114       115                                                                                      

First Set:
<SystemGoal> -> program
<Progrm> -> program
<ProgramHeading> -> program
<Block> -> function begin var procedure
<VariableDeclarationPart> -> var lambda
<VariableDeclarationTail> -> identifier lambda
<VariableDeclaration> -> identifier
<Type> -> Integer Float String Boolean
<ProcedureAndFunctionDeclarationPart> -> function procedure lambda
<ProcedureDeclaration> -> procedure
<FunctionDeclaration> -> function
<ProcedureHeading> -> procedure
<FunctionHeading> -> function
<OptionalFormalParameterList> -> ( lambda
<FormalParameterSectionTail> -> ; lambda
<FormalParameterSection> -> var identifier
<ValueParameterSection> -> identifier
<VariableParameterSection> -> var
<StatementPart> -> begin
<CompoundStatement> -> begin
<StatementSequence> -> writeln begin repeat for read write while identifier ; if lambda
<StatementTail> -> ; lambda
<Statement> -> writeln begin repeat for read write while identifier lambda if
<EmptyStatement> -> lambda
<ReadStatement> -> read
<ReadParameterTail> -> , lambda
<ReadParameter> -> identifier
<WriteStatement> -> write writeln
<WriteParameterTail> -> , lambda
<WriteParameter> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<AssignmentStatement> -> identifier
<IfStatement> -> if
<OptionalElsePart> -> else lambda
<RepeatStatement> -> repeat
<WhileStatement> -> while
<ForStatement> -> for
<ControlVariable> -> identifier
<InitialValue> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<StepValue> -> to downto
<FinalValue> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<ProcedureStatement> -> identifier
<OptionalActualParameterList> -> ( lambda
<ActualParameterTail> -> , lambda
<ActualParameter> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<Expression> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<OptionalRelationalPart> -> >= <> <= lambda = < >
<RelationalOperator> -> >= <> <= = < >
<SimpleExpression> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<TermTail> -> + - or lambda
<OptionalSign> -> + - lambda
<AddingOperator> -> + - or
<Term> -> False ( unsignedInteger stringLiteral not unsignedFloat identifier True
<FactorTail> -> and * / div lambda mod
<MultiplyingOperator> -> and div * / mod
<Factor> -> False ( not unsignedFloat unsignedInteger identifier True stringLiteral
<ProgramIdentifier> -> identifier
<VariableIdentifier> -> identifier
<ProcedureIdentifier> -> identifier
<FunctionIdentifier> -> identifier
<BooleanExpression> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<OrdinalExpression> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<IdentifierList> -> identifier
<IdentifierTail> -> , lambda

Follow Set:
<SystemGoal> ->
<Progrm> -> EOF
<ProgramHeading> -> ;
<Block> -> ; .
<VariableDeclarationPart> -> function begin procedure
<VariableDeclarationTail> -> function begin procedure
<VariableDeclaration> -> ;
<Type> -> ) ;
<ProcedureAndFunctionDeclarationPart> -> begin
<ProcedureDeclaration> -> function begin procedure
<FunctionDeclaration> -> function begin procedure
<ProcedureHeading> -> ;
<FunctionHeading> -> ;
<OptionalFormalParameterList> -> ; :
<FormalParameterSectionTail> -> )
<FormalParameterSection> -> ) ;
<ValueParameterSection> -> ) ;
<VariableParameterSection> -> ) ;
<StatementPart> -> ; .
<CompoundStatement> -> end ; else until .
<StatementSequence> -> end until
<StatementTail> -> end until
<Statement> -> end ; until else
<EmptyStatement> -> end ; until else
<ReadStatement> -> end ; until else
<ReadParameterTail> -> )
<ReadParameter> -> ) ,
<WriteStatement> -> end ; until else
<WriteParameterTail> -> )
<WriteParameter> -> ) ,
<AssignmentStatement> -> end ; until else
<IfStatement> -> end ; until else
<OptionalElsePart> -> end ; until else
<RepeatStatement> -> end ; until else
<WhileStatement> -> end ; until else
<ForStatement> -> end ; until else
<ControlVariable> -> :=
<InitialValue> -> to downto
<StepValue> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<FinalValue> -> do
<ProcedureStatement> -> end ; until else
<OptionalActualParameterList> -> and >= then <> <= end downto ) + * - , / to ; = < > do else mod until div or
<ActualParameterTail> -> )
<ActualParameter> -> ) ,
<Expression> -> then end do ) downto , else to ; until
<OptionalRelationalPart> -> then end to do ) , else downto ; until
<RelationalOperator> -> False ( + - stringLiteral not unsignedFloat identifier True unsignedInteger
<SimpleExpression> -> then >= do <> <= else end to ) , < downto ; = until >
<TermTail> -> then >= do <> <= else end downto ) , until to ; = < >
<OptionalSign> -> False ( unsignedInteger stringLiteral not unsignedFloat identifier True
<AddingOperator> -> False ( unsignedInteger stringLiteral not unsignedFloat identifier True
<Term> -> then >= do <> <= else end downto ) + - , or to until ; = < >
<FactorTail> -> then >= do <> <= else end to ) + - , < downto until ; = or >
<MultiplyingOperator> -> False ( unsignedInteger stringLiteral not unsignedFloat identifier True
<Factor> -> and >= do <> <= end downto ) + * - , / to ; = until > then else mod < div or
<ProgramIdentifier> -> ;
<VariableIdentifier> -> and >= then <> <= := end to ) + * - , / downto ; = < > do else mod until div or
<ProcedureIdentifier> -> end ( ; until else
<FunctionIdentifier> -> and >= then <> <= := end to ) ( + * - , / downto ; : = < > do else mod until div or
<BooleanExpression> -> then end do else ; until
<OrdinalExpression> -> to do ) downto ,
<IdentifierList> -> :
<IdentifierTail> -> :