DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦797c93b03⟧ TextFile

    Length: 2236 (0x8bc)
    Types: TextFile
    Names: »B«

Derivation

└─⟦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⟧ 

TextFile

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;