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: 1547 (0x60b) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Scanner; with Object; with Class_Block; with Statements; package body List is type Node_Structure is record Kwd : Object.Unary; Ident : Object.Unary; Stat : Statements.Node := Statements.Empty_Node; Parent : Block.Node := Block.Empty_Node; end record; procedure Parse (N : in out Block.Node; Ident : in out Object.Unary; Kwd : in out Object.Unary; Error : out Boolean) is Failed : Boolean := False; use Scanner; begin case Scanner.Get_Token is when Scanner.Identifier => Object.Put (This => Scanner.Get_Value, Into => Ident); Scanner.Next; if Scanner.Get_Token = Scanner.Identifier then Parse (N, Ident, Kwd, Error); end if; when Scanner.Keyword => Object.Put (This => Scanner.Get_Value, Into => Kwd); Scanner.Next; Object.Put (This => Scanner.Get_Value, Into => Ident); Scanner.Next; if Scanner.Get_Token = Scanner.Keyword then Parse (N, Ident, Kwd, Error); end if; when others => null; end case; Error := Failed; end Parse; function Is_First (T : Scanner.Token) return Boolean is use Scanner; begin return T = Identifier or else T = Keyword; end Is_First; end List;