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: 3511 (0xdb7) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
separate (Parse) procedure Parse_Changer (Ok : out Boolean; The_Node : out Abstract_Tree.P_Node) is Ok1 : Boolean := True; Var_Node, Class_Node, Actor_Node : Abstract_Tree.P_Node; Success : Boolean; Table_Changed : Boolean := False; begin Ok := True; Text_Io.Put_Line ("parse_changer"); if Lex.Get_Token = L_Changer then Lex.Next; if Lex.Get_Token = L_Ouvrante then Lex.Next; if Lex.Get_Token = L_Id then if Symbol_Table.Is_Visible (Lex.Get_Value) then declare The_Class : Element.Class; begin Symbol_Table.Get_Class (Lex.Get_Value, The_Class, Success); Symbol_Table.Change_Current_Table (The_Class, Success); Table_Changed := Success; end; Class_Node := Abstract_Tree.Make_Foliage (L_Id, Lex.Get_Value); else Error.Found; Class_Node := Abstract_Tree.Empty_Node; end if; Lex.Next; if Lex.Get_Token = L_Point then Lex.Next; if Lex.Get_Token = L_Id then if Symbol_Table.Is_Visible_Local (Lex.Get_Value) then Actor_Node := Abstract_Tree.Make_Foliage (L_Id, Lex.Get_Value); Symbol_Table.Leave_Table (Success); Table_Changed := False; else Error.Found; Actor_Node := Abstract_Tree.Empty_Node; end if; Lex.Next; if Lex.Get_Token = L_Virgule then Lex.Next; Parse_Variable (Ok1, Var_Node); if not Ok1 then Parse_Error (Variable_Follow); else The_Node := Abstract_Tree.Make_Node (L_Changer, Class_Node, Actor_Node, Var_Node); end if; if Lex.Get_Token = L_Fermante then Lex.Next; else Ok := False; end if; else Ok := False; The_Node := Abstract_Tree.Empty_Node; end if; else Ok := False; The_Node := Abstract_Tree.Empty_Node; end if; else Ok := False; The_Node := Abstract_Tree.Empty_Node; end if; else Ok := False; The_Node := Abstract_Tree.Empty_Node; end if; else Ok := False; The_Node := Abstract_Tree.Empty_Node; end if; else Ok := False; The_Node := Abstract_Tree.Empty_Node; end if; if Table_Changed then Symbol_Table.Leave_Table (Success); end if; end Parse_Changer;