File "mcc-pascal.mly", line 92, characters 29-37: Warning: the token TokBreak is unused. File "mcc-pascal.mly", line 103, characters 29-37: Warning: the token TokConst is unused. File "mcc-pascal.mly", line 54, characters 29-38: Warning: the token TokLShift is unused. File "mcc-pascal.mly", line 75, characters 29-41: Warning: the token TokLeftBrace is unused. File "mcc-pascal.mly", line 55, characters 29-38: Warning: the token TokRShift is unused. File "mcc-pascal.mly", line 76, characters 29-42: Warning: the token TokRightBrace is unused. File "mcc-pascal.mly", line 152, characters 6-14: Warning: the token TokStart is unused. Grammar has 86 nonterminal symbols, among which 3 start symbols. Grammar has 78 terminal symbols. Grammar has 194 productions. File "mcc-pascal.mly", line 951, characters 0-20: Warning: character_string_rev generates the empty language. File "mcc-pascal.mly", line 945, characters 0-16: Warning: character_string generates the empty language. nullable(while_statement) = false nullable(variable_declaration_list) = false nullable(variable_declaration) = false nullable(variable_decl) = false nullable(var_parameter_set) = false nullable(value_parameter_set) = false nullable(unsigned_constant) = false nullable(unit_header) = false nullable(unit_body) = false nullable(type_denoter) = false nullable(type_definition_list_rev) = false nullable(type_definition_list) = false nullable(type_definition) = false nullable(type_def) = false nullable(term) = false nullable(statements) = false nullable(statement_list_rev) = false nullable(statement_list) = false nullable(statement) = false nullable(simple_expression) = false nullable(sign) = false nullable(repeat_statement) = false nullable(relop) = false nullable(record_type) = false nullable(record_section_list) = false nullable(record_section) = false nullable(program_header) = false nullable(program) = false nullable(procedure_type_heading) = false nullable(procedure_heading) = false nullable(procedure_decl) = false nullable(procedure_body) = false nullable(primary) = false nullable(new_type) = false nullable(new_structured_type) = false nullable(new_pointer_type) = false nullable(mulop) = false nullable(logop) = false nullable(interface_body_rev) = false nullable(interface_body_element) = false nullable(interface_body) = false nullable(index_list_rev) = false nullable(index_list) = false nullable(index) = false nullable(implementation_body) = false nullable(if_statement) = false nullable(identifier_list_rev) = false nullable(identifier_list) = false nullable(identifier) = false nullable(function_type_heading) = false nullable(function_heading) = false nullable(function_decl) = false nullable(function_call) = false nullable(function_body) = false nullable(formal_parameters) = false nullable(for_statement) = false nullable(factor) = false nullable(expression_list_rev) = false nullable(expression_list) = false nullable(expression) = false nullable(exponentiation) = false nullable(directive) = false nullable(constant_unsigned_constant) = false nullable(constant_term) = false nullable(constant_simple_expression) = false nullable(constant_primary) = false nullable(constant_factor) = false nullable(constant_expression) = false nullable(constant_exponentiation) = false nullable(constant_add_term) = false nullable(console) = false nullable(character_string_rev) = false nullable(character_string) = false nullable(case_statement) = false nullable(case_element_list_rev) = false nullable(case_element_list) = false nullable(case_element) = false nullable(boolean_value) = false nullable(boolean_expression) = false nullable(body) = false nullable(block_list_rev) = false nullable(block_list) = false nullable(block) = false nullable(array_type) = false nullable(addop) = false nullable(add_term) = false first(while_statement) = TokWhile first(variable_declaration_list) = TokId first(variable_declaration) = TokId first(variable_decl) = TokVar first(var_parameter_set) = TokVar first(value_parameter_set) = TokId first(unsigned_constant) = TokTrue TokString TokNil TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(unit_header) = TokUnit first(unit_body) = TokUnit first(type_denoter) = TokTypeString TokTypeSingle TokTypeInteger TokTypeChar TokRecord TokProcedure TokId TokHat TokFunction TokArray first(type_definition_list_rev) = TokId first(type_definition_list) = TokId first(type_definition) = TokId first(type_def) = TokType first(term) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(statements) = TokBegin first(statement_list_rev) = TokWhile TokTrue TokString TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokDec TokChar TokCase TokAmp first(statement_list) = TokWhile TokTrue TokString TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokDec TokChar TokCase TokAmp first(statement) = TokWhile TokTrue TokString TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokDec TokChar TokCase TokAmp first(simple_expression) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(sign) = TokPlus TokMinus first(repeat_statement) = TokRepeat first(relop) = TokNotEq TokLt TokLe TokGt TokGe TokEq first(record_type) = TokRecord first(record_section_list) = TokId first(record_section) = TokId first(program_header) = TokProgram first(program) = TokProgram first(procedure_type_heading) = TokProcedure first(procedure_heading) = TokProcedure first(procedure_decl) = TokProcedure first(procedure_body) = TokVar TokType TokProcedure TokFunction TokBegin first(primary) = TokTrue TokString TokNot TokNil TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(new_type) = TokRecord TokHat TokArray first(new_structured_type) = TokRecord TokArray first(new_pointer_type) = TokHat first(mulop) = TokStar TokSlash TokMod TokDiv first(logop) = TokXor TokShr TokShl TokOr TokAnd first(interface_body_rev) = TokVar TokType TokProcedure TokFunction first(interface_body_element) = TokVar TokType TokProcedure TokFunction first(interface_body) = TokInterface first(index_list_rev) = TokInt first(index_list) = TokInt first(index) = TokInt first(implementation_body) = TokImplementation first(if_statement) = TokIf first(identifier_list_rev) = TokId first(identifier_list) = TokId first(identifier) = TokId first(function_type_heading) = TokFunction first(function_heading) = TokFunction first(function_decl) = TokFunction first(function_call) = TokId first(function_body) = TokVar TokType TokProcedure TokFunction TokBegin first(formal_parameters) = TokVar TokId first(for_statement) = TokFor first(factor) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(expression_list_rev) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(expression_list) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(expression) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(exponentiation) = TokTrue TokString TokNot TokNil TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(directive) = TokForward TokExternal first(constant_unsigned_constant) = TokTrue TokString TokNil TokInt TokFloat TokFalse TokChar first(constant_term) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(constant_simple_expression) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(constant_primary) = TokTrue TokString TokNot TokNil TokLeftParen TokInt TokFloat TokFalse TokChar first(constant_factor) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(constant_expression) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(constant_exponentiation) = TokTrue TokString TokNot TokNil TokLeftParen TokInt TokFloat TokFalse TokChar first(constant_add_term) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(console) = TokWhile TokUnit TokTrue TokString TokRepeat TokProgram TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEof TokDec TokChar TokCase TokAmp first(character_string_rev) = first(character_string) = first(case_statement) = TokCase first(case_element_list_rev) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(case_element_list) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(case_element) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokChar first(boolean_value) = TokTrue TokFalse first(boolean_expression) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp first(body) = TokVar TokType TokProcedure TokFunction TokBegin first(block_list_rev) = TokVar TokType TokProcedure TokFunction first(block_list) = TokVar TokType TokProcedure TokFunction first(block) = TokVar TokType TokProcedure TokFunction first(array_type) = TokArray first(addop) = TokPlus TokMinus first(add_term) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp follow(while_statement) = TokWhile TokUntil TokTrue TokString TokSemi TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokElse TokDec TokChar TokCase TokAmp # follow(variable_declaration_list) = TokSemi follow(variable_declaration) = TokSemi follow(variable_decl) = TokVar TokType TokProcedure TokImplementation TokFunction TokEnd TokBegin follow(var_parameter_set) = TokSemi TokRightParen follow(value_parameter_set) = TokSemi TokRightParen follow(unsigned_constant) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokHat TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokAssignEq TokAnd follow(unit_header) = TokInterface follow(unit_body) = # follow(type_denoter) = TokSemi TokRightParen follow(type_definition_list_rev) = TokVar TokType TokProcedure TokImplementation TokId TokFunction TokEnd TokBegin follow(type_definition_list) = TokVar TokType TokProcedure TokImplementation TokFunction TokEnd TokBegin follow(type_definition) = TokVar TokType TokProcedure TokImplementation TokId TokFunction TokEnd TokBegin follow(type_def) = TokVar TokType TokProcedure TokImplementation TokFunction TokEnd TokBegin follow(term) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokAnd follow(statements) = TokSemi TokElse TokDot follow(statement_list_rev) = TokWhile TokUntil TokTrue TokString TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokDec TokChar TokCase TokAmp follow(statement_list) = TokUntil TokEnd follow(statement) = TokWhile TokUntil TokTrue TokString TokSemi TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokElse TokDec TokChar TokCase TokAmp # follow(simple_expression) = TokXor TokTo TokThen TokShr TokShl TokSemi TokRightParen TokOr TokOf TokNotEq TokLt TokLe TokGt TokGe TokEq TokDownTo TokDo TokComma TokAnd follow(sign) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp follow(repeat_statement) = TokWhile TokUntil TokTrue TokString TokSemi TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokElse TokDec TokChar TokCase TokAmp # follow(relop) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp follow(record_type) = TokSemi TokRightParen follow(record_section_list) = TokSemi follow(record_section) = TokSemi follow(program_header) = TokVar TokType TokProcedure TokFunction TokBegin follow(program) = # follow(procedure_type_heading) = TokSemi TokRightParen follow(procedure_heading) = TokSemi follow(procedure_decl) = TokVar TokType TokProcedure TokFunction TokEnd TokBegin follow(procedure_body) = TokSemi follow(primary) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokAnd follow(new_type) = TokSemi TokRightParen follow(new_structured_type) = TokSemi TokRightParen follow(new_pointer_type) = TokSemi TokRightParen follow(mulop) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp follow(logop) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp follow(interface_body_rev) = TokVar TokType TokProcedure TokImplementation TokFunction follow(interface_body_element) = TokVar TokType TokProcedure TokImplementation TokFunction follow(interface_body) = TokImplementation follow(index_list_rev) = TokRightBrack TokComma follow(index_list) = TokRightBrack follow(index) = TokRightBrack TokComma follow(implementation_body) = TokEnd TokBegin follow(if_statement) = TokWhile TokUntil TokTrue TokString TokSemi TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokElse TokDec TokChar TokCase TokAmp # follow(identifier_list_rev) = TokSemi TokRightParen TokComma TokColon follow(identifier_list) = TokSemi TokRightParen TokColon follow(identifier) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLeftParen TokLe TokHat TokGt TokGe TokEq TokDownTo TokDot TokDo TokDiv TokComma TokColon TokAssignEq TokAnd follow(function_type_heading) = TokSemi TokRightParen follow(function_heading) = TokSemi follow(function_decl) = TokVar TokType TokProcedure TokFunction TokEnd TokBegin follow(function_call) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokHat TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokAssignEq TokAnd follow(function_body) = TokSemi follow(formal_parameters) = TokSemi TokRightParen follow(for_statement) = TokWhile TokUntil TokTrue TokString TokSemi TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokElse TokDec TokChar TokCase TokAmp # follow(factor) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokAnd follow(expression_list_rev) = TokRightParen TokComma follow(expression_list) = TokRightParen follow(expression) = TokTo TokThen TokSemi TokRightParen TokOf TokDownTo TokDo TokComma follow(exponentiation) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokAnd follow(directive) = TokSemi follow(constant_unsigned_constant) = TokXor TokStar TokSlash TokShr TokShl TokRightParen TokPlus TokOr TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDiv TokColon TokAnd follow(constant_term) = TokXor TokStar TokSlash TokShr TokShl TokRightParen TokPlus TokOr TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDiv TokColon TokAnd follow(constant_simple_expression) = TokXor TokShr TokShl TokRightParen TokOr TokNotEq TokLt TokLe TokGt TokGe TokEq TokColon TokAnd follow(constant_primary) = TokXor TokStar TokSlash TokShr TokShl TokRightParen TokPlus TokOr TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDiv TokColon TokAnd follow(constant_factor) = TokXor TokStar TokSlash TokShr TokShl TokRightParen TokPlus TokOr TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDiv TokColon TokAnd follow(constant_expression) = TokRightParen TokColon follow(constant_exponentiation) = TokXor TokStar TokSlash TokShr TokShl TokRightParen TokPlus TokOr TokNotEq TokMod TokMinus TokLt TokLe TokGt TokGe TokEq TokDiv TokColon TokAnd follow(constant_add_term) = TokXor TokShr TokShl TokRightParen TokPlus TokOr TokNotEq TokMinus TokLt TokLe TokGt TokGe TokEq TokColon TokAnd follow(console) = # follow(character_string_rev) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokHat TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokColon TokChar TokAssignEq TokAnd follow(character_string) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokHat TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokColon TokAssignEq TokAnd follow(case_statement) = TokWhile TokUntil TokTrue TokString TokSemi TokRepeat TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokIf TokId TokFor TokFloat TokFalse TokEnd TokElse TokDec TokChar TokCase TokAmp # follow(case_element_list_rev) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokEnd TokElse TokChar follow(case_element_list) = TokEnd TokElse follow(case_element) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokFloat TokFalse TokEnd TokElse TokChar follow(boolean_value) = TokXor TokTo TokThen TokStar TokSlash TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMod TokMinus TokLt TokLe TokHat TokGt TokGe TokEq TokDownTo TokDo TokDiv TokComma TokColon TokAssignEq TokAnd follow(boolean_expression) = TokThen TokSemi TokDo follow(body) = TokSemi TokDot follow(block_list_rev) = TokVar TokType TokProcedure TokFunction TokEnd TokBegin follow(block_list) = TokEnd TokBegin follow(block) = TokVar TokType TokProcedure TokFunction TokEnd TokBegin follow(array_type) = TokSemi TokRightParen follow(addop) = TokTrue TokString TokPlus TokNot TokNil TokMinus TokLeftParen TokInt TokInc TokId TokFloat TokFalse TokDec TokChar TokAmp follow(add_term) = TokXor TokTo TokThen TokShr TokShl TokSemi TokRightParen TokPlus TokOr TokOf TokNotEq TokMinus TokLt TokLe TokGt TokGe TokEq TokDownTo TokDo TokComma TokAnd Built an LR(0) automaton with 357 states. The grammar is not SLR(1) -- 1 states have a conflict. Built an LR(1) automaton with 420 states. File "mcc-pascal.mly", line 153, characters 0-5: Warning: the precedence level assigned to TokAmp is never useful. File "mcc-pascal.mly", line 145, characters 0-5: Warning: the precedence level assigned to TokComma is never useful. File "mcc-pascal.mly", line 146, characters 0-6: Warning: the precedence level assigned to TokEq is never useful. File "mcc-pascal.mly", line 149, characters 0-5: Warning: the precedence level assigned to TokGe is never useful. File "mcc-pascal.mly", line 149, characters 0-5: Warning: the precedence level assigned to TokGt is never useful. File "mcc-pascal.mly", line 154, characters 0-5: Warning: the precedence level assigned to TokHat is never useful. File "mcc-pascal.mly", line 150, characters 0-5: Warning: the precedence level assigned to TokLShift is never useful. File "mcc-pascal.mly", line 149, characters 0-5: Warning: the precedence level assigned to TokLe is never useful. File "mcc-pascal.mly", line 149, characters 0-5: Warning: the precedence level assigned to TokLt is never useful. File "mcc-pascal.mly", line 151, characters 0-5: Warning: the precedence level assigned to TokMinus is never useful. File "mcc-pascal.mly", line 147, characters 0-5: Warning: the precedence level assigned to TokMod is never useful. File "mcc-pascal.mly", line 148, characters 0-5: Warning: the precedence level assigned to TokNotEq is never useful. File "mcc-pascal.mly", line 151, characters 0-5: Warning: the precedence level assigned to TokPlus is never useful. File "mcc-pascal.mly", line 150, characters 0-5: Warning: the precedence level assigned to TokRShift is never useful. File "mcc-pascal.mly", line 152, characters 0-5: Warning: the precedence level assigned to TokSlash is never useful. File "mcc-pascal.mly", line 152, characters 0-5: Warning: the precedence level assigned to TokStart is never useful. Warning: 2 states have shift/reduce conflicts. Warning: 2 shift/reduce conflicts were arbitrarily resolved. 188 out of 420 states have a default reduction. 120 out of 420 states are represented. 0 out of 169 symbols keep track of their start position. 0 out of 169 symbols keep track of their end position. 141 out of 197 productions exploit shiftreduce optimization. 0 out of 420 states can peek at an error. 1131 functions before inlining, 147 functions after inlining.