![]() |
Re: Lexikalischer Scanner
So melde mich nu auch wieder :)
Bisher sieht mein sozusagen "Überprüfungscode" so aus:
Delphi-Quellcode:
Bisher klappt es und er fügt die Zeichen immer ein:
procedure TLexer.CheckText;
var i:Integer; begin i:=0; while i <> length(m_Text)+1 do begin case m_Text[i] of 'A'..'Z','a'..'z': begin case m_Text[i-1] of 'A'..'Z','a'..'z': begin Insert('*',m_Text,i); Insert('1',m_Text,i); Insert('*',m_Text,i); end; '0'..'9': begin Insert('*',m_Text,i); end; '+','-','/': begin Insert('*',m_Text,i); Insert('1',m_Text,i); end; #0: begin Insert('*',m_Text,i); Insert('1',m_Text,i); end; end; end; end; case m_Text[i] of '(': begin case m_Text[i-1] of 'A'..'Z','a'..'z': begin Insert('*',m_Text,i); end; '0'..'9': begin Insert('*',m_Text,i); end; end; end; end; case m_Text[i] of '0'..'9': begin case m_Text[i-1] of 'A'..'Z','a'..'z': begin Insert('*',m_Text,i); end; end; end; end; inc(i); end; end; z.b. 2x^2+3ab*5 = 2*x^2+2+3*a*1*b*5 weil mit so ner Struktur ist die Erkennung der Variablen leichter, eine Variable besteht immer aus: Ziffer * Variable unter Umständen dann noch Ziffer * Variable ^ Ziffer Zur Zeit bin ich am Zusammenfassen der Variablen, Addition und Subtraktion funktionieren schonmal soweit. MfG Alaitoc |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz