|
|
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 - metrics - downloadIndex: B T
Length: 2236 (0x8bc)
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_Operation return Boolean is
procedure Parse_Expr;
procedure Parse_Fact is
begin
case Lex.Lex_Get_Token is
when Token.L_Parentheseg =>
Lex.Lex_Next;
Parse_Expr;
if Token.Object'Pos (Lex.Lex_Get_Token) =
Token.Object'Pos (Token.L_Parenthesed) then
Lex.Lex_Next;
else
raise Error;
end if;
when Token.L_Id =>
Lex.Lex_Next;
when Token.L_Int =>
Lex.Lex_Next;
when others =>
raise Error;
end case;
end Parse_Fact;
procedure Parse_Term is
T_Token : Token.Object;
begin
Parse_Fact;
T_Token := Lex.Lex_Get_Token;
while Token.Object'Pos (T_Token) = Token.Object'Pos (Token.L_Star) or
Token.Object'Pos (T_Token) =
Token.Object'Pos (Token.L_Slash) loop
case T_Token is
when Token.L_Star =>
Lex.Lex_Next;
Parse_Fact;
when Token.L_Slash =>
Lex.Lex_Next;
Parse_Fact;
when others =>
null;
end case;
T_Token := Lex.Lex_Get_Token;
end loop;
end Parse_Term;
procedure Parse_Expr is
T_Token : Token.Object;
begin
Parse_Term;
T_Token := Lex.Lex_Get_Token;
while Token.Object'Pos (T_Token) = Token.Object'Pos (Token.L_Plus) or
Token.Object'Pos (T_Token) =
Token.Object'Pos (Token.L_Moins) loop
case T_Token is
when Token.L_Plus =>
Lex.Lex_Next;
Parse_Term;
when Token.L_Moins =>
Lex.Lex_Next;
Parse_Term;
when others =>
null;
end case;
T_Token := Lex.Lex_Get_Token;
end loop;
end Parse_Expr;
begin
Parse_Expr;
return True;
exception
when Error =>
return False;
end Parse_Operation;