|
@@ -525,9 +525,7 @@ begin
|
|
Result := TPasProcedureType(CreateElement(TPasProcedureType, '', nil));
|
|
Result := TPasProcedureType(CreateElement(TPasProcedureType, '', nil));
|
|
ParseProcedureOrFunctionHeader(Result,
|
|
ParseProcedureOrFunctionHeader(Result,
|
|
TPasProcedureType(Result), ptProcedure, True);
|
|
TPasProcedureType(Result), ptProcedure, True);
|
|
-// Writeln('Parsecomplextype. After Procedure ',CurTokentext);
|
|
|
|
- if CurToken=tkSemicolon then
|
|
|
|
- UngetToken; // Unget semicolon
|
|
|
|
|
|
+ UngetToken; // Unget semicolon
|
|
end;
|
|
end;
|
|
tkFunction:
|
|
tkFunction:
|
|
begin
|
|
begin
|
|
@@ -535,8 +533,7 @@ begin
|
|
Scanner.CurFilename, Scanner.CurRow);
|
|
Scanner.CurFilename, Scanner.CurRow);
|
|
ParseProcedureOrFunctionHeader(Result,
|
|
ParseProcedureOrFunctionHeader(Result,
|
|
TPasFunctionType(Result), ptFunction, True);
|
|
TPasFunctionType(Result), ptFunction, True);
|
|
- if CurToken=tkSemicolon then
|
|
|
|
- UngetToken; // Unget semicolon
|
|
|
|
|
|
+ UngetToken; // Unget semicolon
|
|
end;
|
|
end;
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
@@ -638,9 +635,9 @@ begin
|
|
MayAppendSpace := True;
|
|
MayAppendSpace := True;
|
|
if CurToken=tkString then
|
|
if CurToken=tkString then
|
|
begin
|
|
begin
|
|
-{ If (Length(CurTokenText)>0) and (CurTokenText[1]=#0) then
|
|
|
|
|
|
+ If (Length(CurTokenText)>0) and (CurTokenText[1]=#0) then
|
|
Writeln('First char is null : "',CurTokenText,'"');
|
|
Writeln('First char is null : "',CurTokenText,'"');
|
|
-} Result := Result + ''''+StringReplace(CurTokenText,'''','''''',[rfReplaceAll])+''''
|
|
|
|
|
|
+ Result := Result + ''''+StringReplace(CurTokenText,'''','''''',[rfReplaceAll])+''''
|
|
end
|
|
end
|
|
else
|
|
else
|
|
Result := Result + CurTokenText;
|
|
Result := Result + CurTokenText;
|
|
@@ -1241,9 +1238,7 @@ begin
|
|
if i > 0 then
|
|
if i > 0 then
|
|
VarType.AddRef;
|
|
VarType.AddRef;
|
|
end;
|
|
end;
|
|
-// Writeln('Token after parsecomplextype: ',CurtokenText);
|
|
|
|
NextToken;
|
|
NextToken;
|
|
-// Writeln('Token prior to equal test: ',CurtokenText);
|
|
|
|
If CurToken=tkEqual then
|
|
If CurToken=tkEqual then
|
|
begin
|
|
begin
|
|
Value := ParseExpression;
|
|
Value := ParseExpression;
|
|
@@ -1252,7 +1247,7 @@ begin
|
|
end
|
|
end
|
|
else
|
|
else
|
|
UngetToken;
|
|
UngetToken;
|
|
-// Writeln('Token after equal test: ',CurtokenText);
|
|
|
|
|
|
+
|
|
NextToken;
|
|
NextToken;
|
|
if CurToken = tkAbsolute then
|
|
if CurToken = tkAbsolute then
|
|
begin
|
|
begin
|
|
@@ -1270,9 +1265,8 @@ begin
|
|
TPasVariable(List[i]).AbsoluteLocation:=S;
|
|
TPasVariable(List[i]).AbsoluteLocation:=S;
|
|
end else
|
|
end else
|
|
UngetToken;
|
|
UngetToken;
|
|
-// Writeln('Hint');
|
|
|
|
- H:=CheckHint(Nil,Curtoken<>tkIdentifier);
|
|
|
|
-// Writeln('DoneHint');
|
|
|
|
|
|
+
|
|
|
|
+ H:=CheckHint(Nil,True);
|
|
If (H<>[]) then
|
|
If (H<>[]) then
|
|
for i := 0 to List.Count - 1 do
|
|
for i := 0 to List.Count - 1 do
|
|
TPasVariable(List[i]).Hints:=H;
|
|
TPasVariable(List[i]).Hints:=H;
|
|
@@ -1320,19 +1314,14 @@ begin
|
|
// ExpectToken(tkSemicolon);
|
|
// ExpectToken(tkSemicolon);
|
|
end
|
|
end
|
|
else if CurToken <> tkSemicolon then
|
|
else if CurToken <> tkSemicolon then
|
|
- begin
|
|
|
|
-// Writeln('here');
|
|
|
|
ParseExc(SParserSyntaxError);
|
|
ParseExc(SParserSyntaxError);
|
|
- end
|
|
|
|
end else
|
|
end else
|
|
begin
|
|
begin
|
|
-// Writeln('here 2');
|
|
|
|
UngetToken;
|
|
UngetToken;
|
|
break;
|
|
break;
|
|
end
|
|
end
|
|
end else
|
|
end else
|
|
begin
|
|
begin
|
|
-// Writeln('here 3');
|
|
|
|
UngetToken;
|
|
UngetToken;
|
|
break;
|
|
break;
|
|
end;
|
|
end;
|
|
@@ -1512,7 +1501,6 @@ begin
|
|
begin
|
|
begin
|
|
// CheckHint(Element,False);
|
|
// CheckHint(Element,False);
|
|
NextToken;
|
|
NextToken;
|
|
-// Writeln('Checking modifiers',CurTokenString);
|
|
|
|
if (CurToken = tkIdentifier) then
|
|
if (CurToken = tkIdentifier) then
|
|
begin
|
|
begin
|
|
Tok:=UpperCase(CurTokenString);
|
|
Tok:=UpperCase(CurTokenString);
|
|
@@ -1610,9 +1598,7 @@ begin
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
-// Writeln('No modifier. Ungetting', FTokenBuffersize,' ',FTokenBufferIndex);
|
|
|
|
UnGetToken;
|
|
UnGetToken;
|
|
-// Writeln('No modifier. Current token is :',curtokentext,' ', FTokenBuffersize,' ',FTokenBufferIndex);
|
|
|
|
Break;
|
|
Break;
|
|
end
|
|
end
|
|
end
|
|
end
|
|
@@ -1630,7 +1616,6 @@ begin
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
-// Writeln('No modifier identifier. Ungetting');
|
|
|
|
UngetToken;
|
|
UngetToken;
|
|
break;
|
|
break;
|
|
end;
|
|
end;
|
|
@@ -2209,10 +2194,6 @@ var
|
|
Move(Start^, s[1], l)
|
|
Move(Start^, s[1], l)
|
|
else
|
|
else
|
|
exit;
|
|
exit;
|
|
- // Strip quote characters
|
|
|
|
- For l:=Length(S) downto 0 do
|
|
|
|
- If S[l] in ['"',''''] then
|
|
|
|
- Delete(S,l,1);
|
|
|
|
if s[1] = '-' then
|
|
if s[1] = '-' then
|
|
begin
|
|
begin
|
|
case s[2] of
|
|
case s[2] of
|
|
@@ -2239,9 +2220,6 @@ var
|
|
|
|
|
|
var
|
|
var
|
|
s: String;
|
|
s: String;
|
|
- LastQuote : Char;
|
|
|
|
- InQuote : Boolean;
|
|
|
|
-
|
|
|
|
begin
|
|
begin
|
|
Result := nil;
|
|
Result := nil;
|
|
FileResolver := nil;
|
|
FileResolver := nil;
|
|
@@ -2280,32 +2258,18 @@ begin
|
|
|
|
|
|
if FPCCommandLine<>'' then
|
|
if FPCCommandLine<>'' then
|
|
begin
|
|
begin
|
|
- InQuote:=False;
|
|
|
|
- Start := @FPCCommandLine[1];
|
|
|
|
- CurPos := Start;
|
|
|
|
- while CurPos[0] <> #0 do
|
|
|
|
|
|
+ Start := @FPCCommandLine[1];
|
|
|
|
+ CurPos := Start;
|
|
|
|
+ while CurPos[0] <> #0 do
|
|
begin
|
|
begin
|
|
- if (CurPos[0] in ['''','"']) then
|
|
|
|
- begin
|
|
|
|
- If InQuote then
|
|
|
|
- begin
|
|
|
|
- if CurPos[0]=lastQuote then
|
|
|
|
- InQuote:=False;
|
|
|
|
- end
|
|
|
|
- else
|
|
|
|
- begin
|
|
|
|
- InQuote:=True;
|
|
|
|
- LastQuote:=CurPos[0];
|
|
|
|
- end;
|
|
|
|
- end
|
|
|
|
- else if (CurPos[0] = ' ') and (not inquote) then
|
|
|
|
|
|
+ if CurPos[0] = ' ' then
|
|
begin
|
|
begin
|
|
- ProcessCmdLinePart;
|
|
|
|
- Start := CurPos + 1;
|
|
|
|
|
|
+ ProcessCmdLinePart;
|
|
|
|
+ Start := CurPos + 1;
|
|
end;
|
|
end;
|
|
- Inc(CurPos);
|
|
|
|
|
|
+ Inc(CurPos);
|
|
end;
|
|
end;
|
|
- ProcessCmdLinePart;
|
|
|
|
|
|
+ ProcessCmdLinePart;
|
|
end;
|
|
end;
|
|
|
|
|
|
if Filename = '' then
|
|
if Filename = '' then
|