DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 5542 (0x15a6) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
separate (Syntaxe_1) function Parse_Liste_Instruction return Boolean is Validation_Bloc : Boolean := False; function Parse_Instruction return Boolean; function Parse_Bloc_Instruction return Boolean is begin if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Faire) then Validation_Bloc := True; Lex.Lex_Next; if Parse_Liste_Instruction then if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Fin) then Lex.Lex_Next; if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Faire) then Lex.Lex_Next; return True; else return False; end if; else return False; end if; else return False; end if; else return Parse_Instruction; end if; end Parse_Bloc_Instruction; function Parse_Instruction return Boolean is begin Validation_Bloc := True; case Lex.Lex_Get_Token is when Token.L_Au => Lex.Lex_Next; if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Temps) then Lex.Lex_Next; if Parse_Operande then return Parse_Bloc_Instruction; else return False; end if; else return False; end if; when Token.L_Si => Lex.Lex_Next; if Parse_Condition then if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Alors) then Lex.Lex_Next; if Parse_Liste_Instruction then if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Fin) then Lex.Lex_Next; if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Si) then Lex.Lex_Next; return True; else return False; end if; else return False; end if; else return False; end if; else return False; end if; else Text_Io.Put_Line ("Erreur dans parse condition"); return False; end if; when Token.L_Repeter => Lex.Lex_Next; if Parse_Operande then if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Fois) then Lex.Lex_Next; if Parse_Liste_Instruction then if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Fin) then Lex.Lex_Next; if Token.Object'Pos (Lex.Lex_Get_Token) = Token.Object'Pos (Token.L_Repeter) then Lex.Lex_Next; return True; else return False; end if; else return False; end if; else return False; end if; else return False; end if; else Text_Io.Put_Line ("Erreur dans parse operande"); return False; end if; when Token.L_Puis => Lex.Lex_Next; return True; when others => declare Ok : Boolean; begin Parse_Action (Validation_Bloc, Ok); return Ok; end; end case; end Parse_Instruction; -- DEBUT DU TRAITEMENT DE LA FONCTION PARSE LISTE INSTRUCTION begin if Parse_Bloc_Instruction then if Parse_Liste_Instruction then -- text_IO.Put_Line ("parse liste instruction est OK"); return True; else Text_Io.Put_Line ("Erreur dans Parse liste instruction"); return False; end if; -- lors du retrait du texte, remplacer toute les instructions precedentes par : -- RETURN Parse_Liste_Instruction else if Validation_Bloc then Text_Io.Put_Line ("erreur dans Parse bloc"); return False; else return True; end if; end if; -- lors du retrait du texte, remplacer toute les instructions precedentes par : -- RETURN not Validation_Bloc end Parse_Liste_Instruction;