From 0f2864bdeefeb208e1bb8db6d5cc3c6188f353e0 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Tue, 8 Dec 2015 21:53:34 +0200 Subject: move SkipWhiteSpace and AtEnd out from GetNextToken to Interpreter --- calc1.pas | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/calc1.pas b/calc1.pas index 0757421..eaad650 100644 --- a/calc1.pas +++ b/calc1.pas @@ -40,6 +40,8 @@ type constructor Create(Text_: AnsiString); procedure Error; + procedure SkipWhitespace; + function AtEnd: Boolean; function GetNextToken: Token; procedure Eat(T: TokenType); function Expr: Integer; @@ -97,22 +99,22 @@ begin Raise Exception.Create('error!'); end; +procedure Interpreter.SkipWhitespace; +begin + while (not AtEnd) and IsWhiteSpace(Text[CurPos]) do + Inc(CurPos); +end; + +function Interpreter.AtEnd: Boolean; +begin + Result := CurPos > Length(Text); +end; + function Interpreter.GetNextToken: Token; var Text_: String; CurrentChar: Char; Start: Integer; - - procedure SkipWhitespace; - begin - while (CurPos <= Length(Text)) and IsWhiteSpace(Text[CurPos]) do - Inc(CurPos); - end; - - function AtEnd: Boolean; - begin - Result := CurPos > Length(Text); - end; begin SkipWhitespace; -- cgit v1.2.3