Parsen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Parsen?

Beitrag von Kyoko12 »

Hi,
ich code gerade einen Compiler und habe alles, auch die interpretation den Befehle, aber mir fehlt der Parser. So, jetzt ist mir aufgefallen, das ich keine ahnung abe, wie ich den Code.

Könnt ihr mir sagen, wie ich da machen kann, ich meine keinen ganzen code, sondern die Theorie für PB und welche befehle man da verwendet?

greez,
Kyoko12
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Parsen?

Beitrag von DarkDragon »

Kyoko12 hat geschrieben:So, jetzt ist mir aufgefallen, das ich keine ahnung abe, wie ich den Code.

Könnt ihr mir sagen, wie ich da machen kann, ich meine keinen ganzen code, sondern die Theorie für PB und welche befehle man da verwendet?

greez,
Kyoko12
:? :? :? :? :? Also erstmal Hallo, dann: Du brichst den ersten Satz in der mitte ab. Den zweiten Satz musste ich 5 mal lesen, damit ich ihn verstehen konnte. Kannst du mir sagen was du willst? Wenns geht bei nüchternem status?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Der Fleckenzwerg
Beiträge: 11
Registriert: 18.10.2004 19:27

Beitrag von Der Fleckenzwerg »

er meint im ersten Satz "Wie ich den code" also, wie ich den programmiere (coden als Verb), ich musste auch ein paar mal lesen. Also er will wissen, wie man einen Parser codet. Leider habe ich davon auch keine Ahnung, sry.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Der Fleckenzwerg hat geschrieben:er meint im ersten Satz "Wie ich den code" also, wie ich den programmiere (coden als Verb), ich musste auch ein paar mal lesen. Also er will wissen, wie man einen Parser codet. Leider habe ich davon auch keine Ahnung, sry.
:freak: achso, und deshalb wird Code groß geschrieben in seinem Satz ^^
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Der Fleckenzwerg
Beiträge: 11
Registriert: 18.10.2004 19:27

Beitrag von Der Fleckenzwerg »

kA, sonst macht's keinen Sinn
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

Nö, ich hab vergessen, fertig zu schreiben.

Hier noch mal alles. leichter verständlich:

Ich weis nicht, wie ich Code parsen soll.

Und ich wollte uch bitten, mir zu sagen, wie das geht, will aber keinen ganzen Code, sondern die Theorie, wie ich das in PB machen kann, und vieleicht, das ihr mir sagt, welcher behehle ich verwenden kann.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Parsen?

Beitrag von Kiffi »

> ich code gerade einen Compiler und habe alles, auch die interpretation den
> Befehle, aber mir fehlt der Parser.

Mit FindString(), Left() und Right() solltest Du erst mal ein Stückchen weiter kommen.

Grüße ... Kiffi
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Also um mal zum topic zurückzukommen:
Ich würde einfach den String, den du ja zum parsen erhältst, auf die Buchstabengruppen hin, die bei dir Befehle darstellen, untersuchen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

Aha, da komm ich nicht ganz mit, hättet ihr doch zufällig nen Code rumliegen?
Nur n kleines Beispiel?

greez,
Kyoko12
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Beispiel (Pseudocode, als kein echter Code):

Code: Alles auswählen

String = "BEFEHL Parameter"
IF LEFT(String, 6) = "BEFEHL"
  ; Da ich den Befehl jetzt kenne, weiß ich auch, dass ein Parameter folgt
  Para = RIGHT(String, ???) ; ??? ist die Länge des Parameternamens (also der Variable, der Zahl oder sonstwas)
  ...
   ; Schreib hier, was du sonst noch tun willst.
ENDIF
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Antworten