Browse Source

* support type()

peter 22 years ago
parent
commit
bc762e9af4
1 changed files with 13 additions and 1 deletions
  1. 13 1
      compiler/i386/ra386int.pas

+ 13 - 1
compiler/i386/ra386int.pas

@@ -720,6 +720,7 @@ Unit Ra386int;
       var
       var
         tempstr,expr,hs : string;
         tempstr,expr,hs : string;
         parenlevel,l,k : longint;
         parenlevel,l,k : longint;
+        hasparen,
         errorflag : boolean;
         errorflag : boolean;
         prevtok : tasmtoken;
         prevtok : tasmtoken;
         hl : tasmlabel;
         hl : tasmlabel;
@@ -827,7 +828,13 @@ Unit Ra386int;
             AS_TYPE:
             AS_TYPE:
               begin
               begin
                 l:=0;
                 l:=0;
+                hasparen:=false;
                 Consume(AS_TYPE);
                 Consume(AS_TYPE);
+                if actasmtoken=AS_LPAREN then
+                  begin
+                    hasparen:=true;
+                    Consume(AS_LPAREN);
+                  end;
                 if actasmtoken<>AS_ID then
                 if actasmtoken<>AS_ID then
                  Message(asmr_e_type_without_identifier)
                  Message(asmr_e_type_without_identifier)
                 else
                 else
@@ -858,6 +865,8 @@ Unit Ra386int;
                  end;
                  end;
                 str(l, tempstr);
                 str(l, tempstr);
                 expr:=expr + tempstr;
                 expr:=expr + tempstr;
+                if hasparen then
+                  Consume(AS_RPAREN);
               end;
               end;
             AS_STRING:
             AS_STRING:
               Begin
               Begin
@@ -1966,7 +1975,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.65  2003-11-12 16:05:39  florian
+  Revision 1.66  2003-11-29 14:41:02  peter
+    * support type()
+
+  Revision 1.65  2003/11/12 16:05:39  florian
     * assembler readers OOPed
     * assembler readers OOPed
     + typed currency constants
     + typed currency constants
     + typed 128 bit float constants if the CPU supports it
     + typed 128 bit float constants if the CPU supports it