Parsen?
-
- Beiträge: 12
- Registriert: 04.01.2005 14:38
ich würde das in etwa so machen:
Code: Alles auswählen
Procedure cutter(befehl.s)
s_z_ein=1
startpos=endpos=1
befehl=Trim(befehl)
laenge=Len(befehl)
For position=1 To laenge
If position=laenge
endpos=laenge+1
eingabe=""
EndIf
zeichen.s=Mid(befehl,position,1)
If s_z_ein=1
Select zeichen
Case " "
If position<>startpos
endpos=position
Else
startpos+1
EndIf
EndSelect
EndIf
If zeichen=Chr(34)
If s_z_ein=-1
endpos=position
Else
startpos+1
EndIf
s_z_ein*-1
Debug s_z_ein
EndIf
If endpos<>0
count+1
befehle(count)=Mid(befehl,startpos,endpos-startpos)
startpos=position+1
endpos=0
EndIf
Next
EndProcedure
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
Ich würds ganz anders machen.
Der erste Teil des Compilers (=lexikalischer Scann oder Lexer) zerlegt den Source für gewöhnlich erstmal in die einzelnen Token (=Bestandteile des Sources, +, -, *, / sind zum Beispiel arithmetische Token, Variablen und Funktionen usw.)
Der Parser untersucht Token für Token. Es gibt verschieden Parser, Tabellengesteuerte oder Rekursive. Den Unterschied kenn ich auch nicht so genau. Ich würd den Parser so schreiben dass er Token für Token vielleicht in eine Art Bytecode übersetzt. Irgendein anderer Programmteil macht dann halt Assembler- oder Binärcode draus. Da gehören aber noch viele andere Teile dazu.
Zum erzeugen von Parsern und Lexern gibt es die Compilerbauwerkzeug Yacc und Lex bzw. die Gnu Pendants Bison und Flex. Bei WikiPedia gibts einige Artikel zum Thema -> http://de.wikipedia.org/wiki/Compilerbau
Der erste Teil des Compilers (=lexikalischer Scann oder Lexer) zerlegt den Source für gewöhnlich erstmal in die einzelnen Token (=Bestandteile des Sources, +, -, *, / sind zum Beispiel arithmetische Token, Variablen und Funktionen usw.)
Der Parser untersucht Token für Token. Es gibt verschieden Parser, Tabellengesteuerte oder Rekursive. Den Unterschied kenn ich auch nicht so genau. Ich würd den Parser so schreiben dass er Token für Token vielleicht in eine Art Bytecode übersetzt. Irgendein anderer Programmteil macht dann halt Assembler- oder Binärcode draus. Da gehören aber noch viele andere Teile dazu.
Zum erzeugen von Parsern und Lexern gibt es die Compilerbauwerkzeug Yacc und Lex bzw. die Gnu Pendants Bison und Flex. Bei WikiPedia gibts einige Artikel zum Thema -> http://de.wikipedia.org/wiki/Compilerbau
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
Nehm dir ein Blatt Papier (Din A 4, mehrere vielleicht) einen Kuli (Farbe Blau) und benutz deinen gesunden Menschenverstand. Schreibt dir auf wie man das am besten realisieren könne und versuch das danach in Purebasic umzusetzen.
Ohne dich jetzt verunsichern zu wollen: Das wird nix vergiss es. Eher gewinnst du im Lotto. Eher tritt George Bush zurück. Eher verschwinden nervige Werbungen für überflüssige verrückte Frösche oder besoffene Elche aus dem Fernsehn!!!!!

Ohne dich jetzt verunsichern zu wollen: Das wird nix vergiss es. Eher gewinnst du im Lotto. Eher tritt George Bush zurück. Eher verschwinden nervige Werbungen für überflüssige verrückte Frösche oder besoffene Elche aus dem Fernsehn!!!!!



