Seite 2 von 4
Verfasst: 08.01.2005 02:21
von Deeem2031
So wie du das geschrieben hst macht sich aber StringField() besser...
Verfasst: 08.01.2005 14:43
von Monstalocke
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
Verfasst: 08.01.2005 19:09
von the one and only
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
Verfasst: 08.01.2005 21:02
von Kyoko12
Meines wissens von einem Tut her, ist der Parser das, der alles in Tokens schneidet, oder?
Ich meine nähmlich das, und nciht wie ich den Code interpretiere, das kriege ich hin!
Hoffe, ich habe euch nciht umsonst bemüht, tschuldigung.
Verfasst: 08.01.2005 22:29
von the one and only
Der Parser analysiert den Code. Der Lexer zerschneidet.
Aber genaugenommen ist der Lexer auch nur Teil des Parsers

Verfasst: 08.01.2005 22:38
von Kyoko12
ich habs so gelernt, das der Parser schneidet, der Scaner interpretiert, der LExer irgendwas mit arrays macht und die Heuristische analyse alles ricxhtig notiert.
Verfasst: 08.01.2005 22:50
von the one and only
Ne das hast du falsch gelernt. Les dir erstmal die Wikipedia Artikel durch, falls du gut Englisch kannst vielleicht auch noch das eine Compiler Tut von Jack Crenshaw (Auf der Robsite unter Zeug oder so) das allerdings nur für Pascal ist aber von der Theorie her denk ich ganz interessant.
Verfasst: 08.01.2005 22:57
von Kyoko12
Ein tut habe ich jetzt gelesen, um die begriuffe zu klären, sonst habe ich alles verstanden, ich habe aber keinen ansatz wie ich das in POB machen soll, das ich eine File öffne, und er mir die richtig zerschneidet!
Könnt ihr mir net nen tipp geben?

Verfasst: 08.01.2005 23:09
von the one and only
Verfasst: 08.01.2005 23:10
von Kyoko12
Wieso, so schwer kanns doch net sein! Und ich vergesse es sicher net, ich habe alles andere schon gecodet! Da gebe ich nach Monaten das Arbeit doch net auf!