AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dokumentation für Parser aus Delphi VCL?
Thema durchsuchen
Ansicht
Themen-Optionen

Dokumentation für Parser aus Delphi VCL?

Ein Thema von DualCoreCpu · begonnen am 28. Jan 2010 · letzter Beitrag vom 30. Jan 2010
Antwort Antwort
DualCoreCpu
(Gast)

n/a Beiträge
 
#1

Re: Dokumentation für Parser aus Delphi VCL?

  Alt 29. Jan 2010, 15:42
Hallo,

Danke zuerst an alle für Eure zahlreiche Antworten. Hab mir auch Castalia runtergeladen. Guck ich mir später an. Hab mir erst mal die verfügbaren Dokus zu Lex und yacc, die mit dem Delphi Compiler Generator mitgeliefert wurden angesehen und brauchte eigentlich mal ein Beispiel.

Für ne Codevervollständigung kömnnte ich ja folgendes schreiben:

%token class const begin constructor destructor end function out override procedure
%token type uses var virtual

Aber wie geht es jetzt weiter?

Wenn der Token "type" gefunden wird muss ja mindestens zwischen Klasse und record unterschieden werden. Wenn später eine Variable vom angegebenen Typ gefunden wird, brauche ich für die Codevervollständigung die Members dieses Typs, beim Record die Felder und bei der Klasse auch die Methoden und Eigenschaften. Nur wie sage ich das dem Lex Programm?

Ich weiß faktisch nicht, was gehört zum Programm, das letzlich entstehen soll und was gehört zum Eingabecode für Lex bzw. yacc?

Beispiel:

%left '+' '-'
%left '*' '/'
%token NUM
%%
expr : expr '+' expr
| expr '-' expr
| expr '*' expr
| expr '/' expr
| '(' expr ')'
| NUM
;

%{
type YYSType = Real;
%}

x : y { action; } z

Ist "{ action; } z jetzt eine Operation zwischen y und z, aus der sich x ergibt?

Wo finde ich da eine verständliche Einführung. Die mit dem Delphi Compiler Generator mitgeleieferte ist mir zu knapp.

Wenn ich mir selber eine Grammatik unabhängig von Lex und yacc schreiben will, könnte das wahrscheinlich so aussehen:


<token> <typbezeichner> '=' <eingebauter_typ>
<token>:= "TYPE"
<typbezeichner>:=['A'..'Z', 'a'..'z']
<eingebauter_typ>:="CLASS","RECORD"...

Nun müsste ich mir ein Pascalprogramm schreiben, das weiß, was <token>, <typbezeichner> ... usw bedeuten, um damit die Grammatik beschreiben zu können.

Aber noch immer hoffe ich auf eine verstänliche einsteigerfreundliche Dokumentation von lex und yacc, womit ich das gleiche erreiche und das womöglich schneller, als mit einem eigenen Lexer.

Wo als finde ich eine verständliche einsteigerfreundliche Dokumentation von Lex und Yacc?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 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