Fixed issue with do statements with counter where artihmetic expressions couldn't be used as conditions only contants or variables, created the program 1

This commit is contained in:
Mariano Uvalle 2019-05-04 22:31:21 -05:00
parent 34d4697aa9
commit c7d211f0b5
9 changed files with 426 additions and 101 deletions

View file

@ -27,82 +27,82 @@ for _k, _v in _lr_goto_items.items():
del _lr_goto_items
_lr_productions = [
("S' -> programa","S'",1,None,None,None),
('programa -> program action_37 id V F action_38 B end program','programa',9,'p_programa','fort.py',225),
('V -> V Tipo Dim doubleColon Rid action_addSymbols action_32','V',7,'p_V','fort.py',232),
('V -> <empty>','V',0,'p_V','fort.py',233),
('Rid -> id','Rid',1,'p_Rid','fort.py',239),
('Rid -> Rid coma id','Rid',3,'p_Rid','fort.py',240),
('Tipo -> integer','Tipo',1,'p_Tipo','fort.py',252),
('Tipo -> real','Tipo',1,'p_Tipo','fort.py',253),
('Dim -> openBra int action_30 closedBra','Dim',4,'p_Dim','fort.py',261),
('Dim -> openBra int action_30 closedBra openBra int action_31 closedBra','Dim',8,'p_Dim','fort.py',262),
('Dim -> <empty>','Dim',0,'p_Dim','fort.py',263),
('F -> F subroutine id action_39 B end subroutine action_40','F',8,'p_F','fort.py',269),
('F -> <empty>','F',0,'p_F','fort.py',270),
('B -> B S','B',2,'p_B','fort.py',276),
('B -> <empty>','B',0,'p_B','fort.py',277),
('S -> Dimensional equals EA action_8','S',4,'p_S','fort.py',283),
('S -> id parens action_41','S',3,'p_S','fort.py',284),
('S -> read RDimensional','S',2,'p_S','fort.py',285),
('S -> print RDimOrString','S',2,'p_S','fort.py',286),
('S -> if action_16 Relif ElseOrEmpty end if action_20','S',7,'p_S','fort.py',287),
('S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do','S',15,'p_S','fort.py',288),
('S -> do then action_21 B action_22 end do','S',7,'p_S','fort.py',289),
('S -> swap Dimensional coma Dimensional','S',4,'p_S','fort.py',290),
('S -> exit action_23','S',2,'p_S','fort.py',291),
('Dimensional -> id DimensionsOrEmpty action_1','Dimensional',3,'p_Dimensional','fort.py',299),
('DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen','DimensionsOrEmpty',5,'p_DimensionsOrEmpty','fort.py',306),
('DimensionsOrEmpty -> <empty>','DimensionsOrEmpty',0,'p_DimensionsOrEmpty','fort.py',307),
('ComaEAOrEmpty -> coma EA action_setDim2','ComaEAOrEmpty',3,'p_ComaEAOrEmpty','fort.py',313),
('ComaEAOrEmpty -> <empty>','ComaEAOrEmpty',0,'p_ComaEAOrEmpty','fort.py',314),
('RDimensional -> Dimensional action_36','RDimensional',2,'p_RDimensional','fort.py',320),
('RDimensional -> RDimensional coma Dimensional action_36','RDimensional',4,'p_RDimensional','fort.py',321),
('RDimOrString -> DimOrString','RDimOrString',1,'p_RDimOrString','fort.py',327),
('RDimOrString -> RDimOrString coma DimOrString','RDimOrString',3,'p_RDimOrString','fort.py',328),
('DimOrString -> Dimensional action_33','DimOrString',2,'p_DimOrString','fort.py',334),
('DimOrString -> string action_34','DimOrString',2,'p_DimOrString','fort.py',335),
('DimOrString -> endline action_34','DimOrString',2,'p_DimOrString','fort.py',336),
('Relif -> openParen EL closedParen action_17 then B','Relif',6,'p_Relif','fort.py',342),
('Relif -> Relif elif action_18 openParen EL closedParen action_17 then B','Relif',9,'p_Relif','fort.py',343),
('ElseOrEmpty -> else action_19 B','ElseOrEmpty',3,'p_ElseOrEmpty','fort.py',349),
('ElseOrEmpty -> <empty>','ElseOrEmpty',0,'p_ElseOrEmpty','fort.py',350),
('IntOrEmpty -> coma int action_28','IntOrEmpty',3,'p_IntOrEmpty','fort.py',356),
('IntOrEmpty -> action_27','IntOrEmpty',1,'p_IntOrEmpty','fort.py',357),
('EA -> MultDiv','EA',1,'p_EA','fort.py',363),
('EA -> EA SumOrSub action_3 MultDiv action_4','EA',5,'p_EA','fort.py',364),
('SumOrSub -> plus','SumOrSub',1,'p_SumOrSub','fort.py',370),
('SumOrSub -> minus','SumOrSub',1,'p_SumOrSub','fort.py',371),
('MultDiv -> EAParens','MultDiv',1,'p_MultDiv','fort.py',378),
('MultDiv -> MultDiv MDSymbols action_5 EAParens action_6','MultDiv',5,'p_MultDiv','fort.py',379),
('MDSymbols -> mul','MDSymbols',1,'p_MDSymbols','fort.py',385),
('MDSymbols -> div','MDSymbols',1,'p_MDSymbols','fort.py',386),
('EAParens -> EItem','EAParens',1,'p_EAParens','fort.py',393),
('EAParens -> openParen EA closedParen','EAParens',3,'p_EAParens','fort.py',394),
('EL -> AND','EL',1,'p_EL','fort.py',400),
('EL -> EL or action_10 AND action_9','EL',5,'p_EL','fort.py',401),
('AND -> Equality','AND',1,'p_AND','fort.py',407),
('AND -> AND and action_12 Equality action_11','AND',5,'p_AND','fort.py',408),
('Equality -> EItem EQSymbols action_13 EItem action_14','Equality',5,'p_Equality','fort.py',414),
('Equality -> openParen EL closedParen','Equality',3,'p_Equality','fort.py',415),
('Equality -> not EL action_15','Equality',3,'p_Equality','fort.py',416),
('EItem -> Dimensional','EItem',1,'p_EItem','fort.py',422),
('EItem -> int action_2','EItem',2,'p_EItem','fort.py',423),
('EItem -> rea action_2_rea','EItem',2,'p_EItem','fort.py',424),
('EQSymbols -> less','EQSymbols',1,'p_EQSymbols','fort.py',430),
('EQSymbols -> more','EQSymbols',1,'p_EQSymbols','fort.py',431),
('EQSymbols -> doubleEquals','EQSymbols',1,'p_EQSymbols','fort.py',432),
('EQSymbols -> notEquals','EQSymbols',1,'p_EQSymbols','fort.py',433),
('EQSymbols -> lessEquals','EQSymbols',1,'p_EQSymbols','fort.py',434),
('EQSymbols -> moreEquals','EQSymbols',1,'p_EQSymbols','fort.py',435),
('action_addSymbols -> <empty>','action_addSymbols',0,'p_action_addSymbols','fort.py',445),
('action_1 -> <empty>','action_1',0,'p_action_1','fort.py',451),
('action_2 -> <empty>','action_2',0,'p_action_2','fort.py',499),
('action_2_rea -> <empty>','action_2_rea',0,'p_action_2_rea','fort.py',505),
('action_3 -> <empty>','action_3',0,'p_action_3','fort.py',511),
('action_4 -> <empty>','action_4',0,'p_action_4','fort.py',516),
('action_5 -> <empty>','action_5',0,'p_action_5','fort.py',539),
('action_6 -> <empty>','action_6',0,'p_action_6','fort.py',544),
('action_8 -> <empty>','action_8',0,'p_action_8','fort.py',567),
('programa -> program action_37 id V F action_38 B end program','programa',9,'p_programa','fort.py',223),
('V -> V Tipo Dim doubleColon Rid action_addSymbols action_32','V',7,'p_V','fort.py',230),
('V -> <empty>','V',0,'p_V','fort.py',231),
('Rid -> id','Rid',1,'p_Rid','fort.py',237),
('Rid -> Rid coma id','Rid',3,'p_Rid','fort.py',238),
('Tipo -> integer','Tipo',1,'p_Tipo','fort.py',250),
('Tipo -> real','Tipo',1,'p_Tipo','fort.py',251),
('Dim -> openBra int action_30 closedBra','Dim',4,'p_Dim','fort.py',259),
('Dim -> openBra int action_30 closedBra openBra int action_31 closedBra','Dim',8,'p_Dim','fort.py',260),
('Dim -> <empty>','Dim',0,'p_Dim','fort.py',261),
('F -> F subroutine id action_39 B end subroutine action_40','F',8,'p_F','fort.py',267),
('F -> <empty>','F',0,'p_F','fort.py',268),
('B -> B S','B',2,'p_B','fort.py',274),
('B -> <empty>','B',0,'p_B','fort.py',275),
('S -> Dimensional equals EA action_8','S',4,'p_S','fort.py',281),
('S -> id parens action_41','S',3,'p_S','fort.py',282),
('S -> read RDimensional','S',2,'p_S','fort.py',283),
('S -> print RDimOrString','S',2,'p_S','fort.py',284),
('S -> if action_16 Relif ElseOrEmpty end if action_20','S',7,'p_S','fort.py',285),
('S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do','S',15,'p_S','fort.py',286),
('S -> do then action_21 B action_22 end do','S',7,'p_S','fort.py',287),
('S -> swap Dimensional coma Dimensional','S',4,'p_S','fort.py',288),
('S -> exit action_23','S',2,'p_S','fort.py',289),
('Dimensional -> id DimensionsOrEmpty action_1','Dimensional',3,'p_Dimensional','fort.py',297),
('DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen','DimensionsOrEmpty',5,'p_DimensionsOrEmpty','fort.py',304),
('DimensionsOrEmpty -> <empty>','DimensionsOrEmpty',0,'p_DimensionsOrEmpty','fort.py',305),
('ComaEAOrEmpty -> coma EA action_setDim2','ComaEAOrEmpty',3,'p_ComaEAOrEmpty','fort.py',311),
('ComaEAOrEmpty -> <empty>','ComaEAOrEmpty',0,'p_ComaEAOrEmpty','fort.py',312),
('RDimensional -> Dimensional action_36','RDimensional',2,'p_RDimensional','fort.py',318),
('RDimensional -> RDimensional coma Dimensional action_36','RDimensional',4,'p_RDimensional','fort.py',319),
('RDimOrString -> DimOrString','RDimOrString',1,'p_RDimOrString','fort.py',325),
('RDimOrString -> RDimOrString coma DimOrString','RDimOrString',3,'p_RDimOrString','fort.py',326),
('DimOrString -> Dimensional action_33','DimOrString',2,'p_DimOrString','fort.py',332),
('DimOrString -> string action_34','DimOrString',2,'p_DimOrString','fort.py',333),
('DimOrString -> endline action_34','DimOrString',2,'p_DimOrString','fort.py',334),
('Relif -> openParen EL closedParen action_17 then B','Relif',6,'p_Relif','fort.py',340),
('Relif -> Relif elif action_18 openParen EL closedParen action_17 then B','Relif',9,'p_Relif','fort.py',341),
('ElseOrEmpty -> else action_19 B','ElseOrEmpty',3,'p_ElseOrEmpty','fort.py',347),
('ElseOrEmpty -> <empty>','ElseOrEmpty',0,'p_ElseOrEmpty','fort.py',348),
('IntOrEmpty -> coma int action_28','IntOrEmpty',3,'p_IntOrEmpty','fort.py',354),
('IntOrEmpty -> action_27','IntOrEmpty',1,'p_IntOrEmpty','fort.py',355),
('EA -> MultDiv','EA',1,'p_EA','fort.py',361),
('EA -> EA SumOrSub action_3 MultDiv action_4','EA',5,'p_EA','fort.py',362),
('SumOrSub -> plus','SumOrSub',1,'p_SumOrSub','fort.py',368),
('SumOrSub -> minus','SumOrSub',1,'p_SumOrSub','fort.py',369),
('MultDiv -> EAParens','MultDiv',1,'p_MultDiv','fort.py',376),
('MultDiv -> MultDiv MDSymbols action_5 EAParens action_6','MultDiv',5,'p_MultDiv','fort.py',377),
('MDSymbols -> mul','MDSymbols',1,'p_MDSymbols','fort.py',383),
('MDSymbols -> div','MDSymbols',1,'p_MDSymbols','fort.py',384),
('EAParens -> EItem','EAParens',1,'p_EAParens','fort.py',391),
('EAParens -> openParen EA closedParen','EAParens',3,'p_EAParens','fort.py',392),
('EL -> AND','EL',1,'p_EL','fort.py',398),
('EL -> EL or action_10 AND action_9','EL',5,'p_EL','fort.py',399),
('AND -> Equality','AND',1,'p_AND','fort.py',405),
('AND -> AND and action_12 Equality action_11','AND',5,'p_AND','fort.py',406),
('Equality -> EItem EQSymbols action_13 EItem action_14','Equality',5,'p_Equality','fort.py',412),
('Equality -> openParen EL closedParen','Equality',3,'p_Equality','fort.py',413),
('Equality -> not EL action_15','Equality',3,'p_Equality','fort.py',414),
('EItem -> Dimensional','EItem',1,'p_EItem','fort.py',420),
('EItem -> int action_2','EItem',2,'p_EItem','fort.py',421),
('EItem -> rea action_2_rea','EItem',2,'p_EItem','fort.py',422),
('EQSymbols -> less','EQSymbols',1,'p_EQSymbols','fort.py',428),
('EQSymbols -> more','EQSymbols',1,'p_EQSymbols','fort.py',429),
('EQSymbols -> doubleEquals','EQSymbols',1,'p_EQSymbols','fort.py',430),
('EQSymbols -> notEquals','EQSymbols',1,'p_EQSymbols','fort.py',431),
('EQSymbols -> lessEquals','EQSymbols',1,'p_EQSymbols','fort.py',432),
('EQSymbols -> moreEquals','EQSymbols',1,'p_EQSymbols','fort.py',433),
('action_addSymbols -> <empty>','action_addSymbols',0,'p_action_addSymbols','fort.py',443),
('action_1 -> <empty>','action_1',0,'p_action_1','fort.py',449),
('action_2 -> <empty>','action_2',0,'p_action_2','fort.py',497),
('action_2_rea -> <empty>','action_2_rea',0,'p_action_2_rea','fort.py',503),
('action_3 -> <empty>','action_3',0,'p_action_3','fort.py',509),
('action_4 -> <empty>','action_4',0,'p_action_4','fort.py',514),
('action_5 -> <empty>','action_5',0,'p_action_5','fort.py',537),
('action_6 -> <empty>','action_6',0,'p_action_6','fort.py',542),
('action_8 -> <empty>','action_8',0,'p_action_8','fort.py',565),
('action_9 -> <empty>','action_9',0,'p_action_9','fort.py',585),
('action_10 -> <empty>','action_10',0,'p_action_10','fort.py',608),
('action_11 -> <empty>','action_11',0,'p_action_11','fort.py',613),
@ -128,13 +128,13 @@ _lr_productions = [
('action_31 -> <empty>','action_31',0,'p_action_31','fort.py',863),
('action_32 -> <empty>','action_32',0,'p_action_32','fort.py',871),
('action_33 -> <empty>','action_33',0,'p_action_33','fort.py',881),
('action_34 -> <empty>','action_34',0,'p_action_34','fort.py',890),
('action_36 -> <empty>','action_36',0,'p_action_36','fort.py',897),
('action_37 -> <empty>','action_37',0,'p_action_37','fort.py',906),
('action_38 -> <empty>','action_38',0,'p_action_38','fort.py',913),
('action_39 -> <empty>','action_39',0,'p_action_39','fort.py',919),
('action_40 -> <empty>','action_40',0,'p_action_40','fort.py',926),
('action_41 -> <empty>','action_41',0,'p_action_41','fort.py',933),
('action_setDim1 -> <empty>','action_setDim1',0,'p_action_setDim1','fort.py',947),
('action_setDim2 -> <empty>','action_setDim2',0,'p_action_setDim2','fort.py',958),
('action_34 -> <empty>','action_34',0,'p_action_34','fort.py',893),
('action_36 -> <empty>','action_36',0,'p_action_36','fort.py',900),
('action_37 -> <empty>','action_37',0,'p_action_37','fort.py',909),
('action_38 -> <empty>','action_38',0,'p_action_38','fort.py',916),
('action_39 -> <empty>','action_39',0,'p_action_39','fort.py',922),
('action_40 -> <empty>','action_40',0,'p_action_40','fort.py',929),
('action_41 -> <empty>','action_41',0,'p_action_41','fort.py',936),
('action_setDim1 -> <empty>','action_setDim1',0,'p_action_setDim1','fort.py',948),
('action_setDim2 -> <empty>','action_setDim2',0,'p_action_setDim2','fort.py',959),
]