Español
SDK-Helfer/ Tools

XPDB: Einheitlicher Standard para Projekt-Datenbanken

 
- Página 1 -



Sebastian
König
¡Hola zusammen,

uno spontanen Concepto folgend Yo antes unos pocos Tagen con el Arbeit a una neuen Projekt comenzó: Ein Parser, el el Struktur uno (X)Profano-Projekts (d.h. eingebundene Incluir-, Encabezamiento-, y Unit-Archivos, enthaltene Prozeduren usw.) en uno Datenbank speichert. Diese Datenbank se entonces en un Expediente geschrieben voluntad - y genau a dieser Punto liegt el Grund para mein Posting hier:

Yo sería para el Formato dieser Archivos gern una einheitlichen Standard schaffen. Und como Yo esta natürlich no allein bestimmen möchte (auch si esta Praxis en el IT-Branche no unüblich es ), sería Yo el Formato gern hier diskutieren (algunos konkrete Vorstellungen Yo ya, aber dazu später mehr).

Erstmal mi Hauptfrage: Was haltet ihr grundsätzlich de el Vorhaben, una solchen Standard a schaffen?

Und específicamente a IF: XPSE schreibt sí para Unidades sí ya algunos Infos en .def-Archivos. Wärst Usted bereit, hier zusätzlich el neue Formato a unterstützen?

Geplant es el Projekt, el Yo vorläufig XPDB genannt habe (para XProfan Program Database - gefällt me eigentlich bastante bien, podría se aber, si jemandem todavía algo besseres einfallen debería, todavía ändern, en no unnötig a Inflation el 4-Buchstaben-XP-Namen beizutragen ) vornehmlich como Software Development Kit, also como Base para weitere Projekte. So se lo en cada Fall una DLL geben, el auch en XProfan bequem nutzbar es, y en Interesse kann Yo auch gern statische Bibliotheken a Nutzung con C/C++- oder Ensamblador-Codes disponible stellen. Auch una rudimentärer GUI-Navegador para el Estructuras se Teil des Pakets voluntad. Aber como hier wirklich no Schwerpunkt de meiner Página de mentira se, wäre una schöner Navegador con vielen Features una erster Vorschlag para una Projekt, el alguien en XProfan escribir podría...

So, el genügt primero - Yo soy en Meinungen y Sugerencias a el Thema!

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.09.2007  
 



 
- Página 2 -



Sebastian
König
IF
El URL bezog se más en una Dateiobjekt.


Auch el es natürlich posible. Hauptsächlich se el wahrscheinlich en el Zusammenhang con Unidades Verwendung encontrar.

IF
Mit el Quotes es alles IO, Usted había sólo hinter una Quote (y antes el Gleichzeichen) una Freizeichen con instalado, y [quote = blub] no existe qué iFBB en el Bezug aufs Quote para Abschalten zwang.


Ah, ok.

IF
Tuve sí así más o menos antes genau esta Funktionalität en el XIDE hineinzukatapultieren - Stichworte Projekt-Assistent/Explorer - vlt. nimmt Sebastian uns esta algo Arbeit de. (vorausgesetzt ser Parser zuckt no en XPSE-Codes y versteht esta ebenso como normale XCodes.)

Würde Yo selbstverständlich gern hacer . Yo podría dafür de mi Code una statische Biblioteca con Low-Level-Zugriff en el de me erstellte Datenbank-Klasse bereitstellen - en Bedarf auch con uno no objektorientierten Schnittstelle, porque el Zugriff darauf en ASM tal vez algo umständlich wäre. Hier podría Yo mich bastante a Euren Wünschen orientieren.

Bislang verarbeitet mein Parser sólo reines XProfan (y su sólo una pequeña Teil, como I, con el Arbeit daran gerade sólo comenzó habe...) Unterstützung para XPSE möchte Yo gern einbauen - aber incluso parsen halte Yo para unnötige Arbeit... uno doch simplemente XPSE aufrufen y el Edición weiterarbeiten, oder?
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
11.09.2007  
 



Sebastian König

IF
El URL bezog se más en una Dateiobjekt.


Auch el es natürlich posible. Hauptsächlich se el wahrscheinlich en el Zusammenhang con Unidades Verwendung encontrar.


Pensé como más no necesariamente a Unidades, más a una offenes (mini!) CVS lo que el XProfan.Com ya bajo el Haube trägt (wegen XIDE). Hiermit se lo posible ser de XIDE heraus una komplettes Projekt hochzuladen y innerhalb de XIDE gemeinsam zeitgleich a una Projekt a trabajo.

Sebastian König
Bislang verarbeitet mein Parser sólo reines XProfan (y su sólo una pequeña Teil, como I, con el Arbeit daran gerade sólo comenzó habe...) Unterstützung para XPSE möchte Yo gern einbauen - aber incluso parsen halte Yo para unnötige Arbeit... uno doch simplemente XPSE aufrufen y el Edición weiterarbeiten, oder?


Wäre komplizierter como uno prüfen debería si überhaupt XPSE angewandt se (y luego auch todavía cada veces a la Prozess starten - phew...) . Lediglich después de #include & include y una wenig {/} geparse es nötig (z.B. para el Funktions/Prozedurerkennung)
Im Principio es alles antes { si no if mientras que & co es, una Función/Procedimiento.
KompilierenMarcaSeparación
#include meineinclude.inc// mit dem # davor ists ein include_once
include meineinclude.inc
myproc{}

while 1{}

El Sache es sólo, Yo hier ca. el XIDE natürlich una viel neueren XPSE como lo hier para DW son, todavía debería el aktuelle hier-downloadbare Versión esta ausreichen.
 
11.09.2007  
 




Sebastian
König
IF
Pensé como más no necesariamente a Unidades, más a una offenes (mini!) CVS lo que el XProfan.Com ya bajo el Haube trägt (wegen XIDE). Hiermit se lo posible ser de XIDE heraus una komplettes Projekt hochzuladen y innerhalb de XIDE gemeinsam zeitgleich a una Projekt a trabajo.

Ok, así langsam verstehe Yo, lo que quiere decir. Lo sería wohl reichen, en lugar de el file Angabe simplemente alternativ oder zusätzlich url a erlauben, oder?

IF

Sebastian König
Bislang verarbeitet mein Parser sólo reines XProfan (y su sólo una pequeña Teil, como I, con el Arbeit daran gerade sólo comenzó habe...) Unterstützung para XPSE möchte Yo gern einbauen - aber incluso parsen halte Yo para unnötige Arbeit... uno doch simplemente XPSE aufrufen y el Edición weiterarbeiten, oder?


Wäre komplizierter como uno prüfen debería si überhaupt XPSE angewandt se (y luego auch todavía cada veces a la Prozess starten - phew...) . Lediglich después de #include & include y una wenig {/} geparse es nötig (z.B. para el Funktions/Prozedurerkennung)
Im Principio es alles antes { si no if mientras que & co es, una Función/Procedimiento. (...)

Hmm... ok, en el Principio podría Yo el wohl auch direkt einbauen. Wäre lo porque nötig, dafür mein zeilenbasiertes Parsen (genauer: Zusammenfügen de por Backslash verbundenen Zeilen y anschließendes Auftrennen, si Doppelpunkte vorkommen) aufzugeben? Su XPSE-Codes erinnern sí mittlerweile muy a C++ oder Java, wo Zeilengrenzen simplemente sólo Leerräume son...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
11.09.2007  
 



Sebastian König

IF
Pensé como más no necesariamente a Unidades, más a una offenes (mini!) CVS lo que el XProfan.Com ya bajo el Haube trägt (wegen XIDE). Hiermit se lo posible ser de XIDE heraus una komplettes Projekt hochzuladen y innerhalb de XIDE gemeinsam zeitgleich a una Projekt a trabajo.

Ok, así langsam verstehe Yo, lo que quiere decir. Lo sería wohl reichen, en lugar de el file Angabe simplemente alternativ oder zusätzlich url a erlauben, oder?


Exactamente, y si mgl. auch ni Dateiversionsangabe - z.B. FileVer. Das rührt por lo tanto el todos XIDE-Panel/Plugin-SDK-Quelltextdateien una Versionsinfo en el Source tragen welche z.B. auch vom Updatecheck genutzt se. Hierfür gibts 2 Varianten:
KompilierenMarcaSeparación
//Version:0.0.0
/Version:0.0.0e>
Diese Info podría Su Parser ebenfalls de el Source lesen y XML beifügen.

Sebastian König

IF

Sebastian König
Bislang verarbeitet mein Parser sólo reines XProfan (y su sólo una pequeña Teil, como I, con el Arbeit daran gerade sólo comenzó habe...) Unterstützung para XPSE möchte Yo gern einbauen - aber incluso parsen halte Yo para unnötige Arbeit... uno doch simplemente XPSE aufrufen y el Edición weiterarbeiten, oder?


Wäre komplizierter como uno prüfen debería si überhaupt XPSE angewandt se (y luego auch todavía cada veces a la Prozess starten - phew...) . Lediglich después de #include & include y una wenig {/} geparse es nötig (z.B. para el Funktions/Prozedurerkennung)
Im Principio es alles antes { si no if mientras que & co es, una Función/Procedimiento. (...)

Hmm... ok, en el Principio podría Yo el wohl auch direkt einbauen. Wäre lo porque nötig, dafür mein zeilenbasiertes Parsen (genauer: Zusammenfügen de por Backslash verbundenen Zeilen y anschließendes Auftrennen, si Doppelpunkte vorkommen) aufzugeben? Su XPSE-Codes erinnern sí mittlerweile muy a C++ oder Java, wo Zeilengrenzen simplemente sólo Leerräume son...


Tatsächlich parst xpse no Zeilenbasiert, hätte como aber ne Concepto como Usted Su Parser todavía kleinhalten kannst wobei uno no una vez el Semikolon como (xpse)möglichen Zeilentrenner wegdenken muss. (Das unten aber sólo funktioniert como Usted sí el Source no wirklich prüfen musst etc.)

Sehen nosotros veces el drei einfacheren Problemfälle a:
KompilierenMarcaSeparación
Angenommen todos File liegt en un String s y wir haben zusätzlich el pseudo whiletranslate (
KompilierenMarcaSeparación) a Disposición, entonces gilt:
KompilierenMarcaSeparación
//source säubern
s=translate(s,	,x20)
s=whiletranslate(s,x20x20,x20)
s=whiletranslate(s,
x20,
)
s=whiletranslate(s,x20
,
)
s=whiletranslate(s,
,
)
//otro Zeilentrenner
s=translate(s,;,
)
s=translate(s,:,
)
//klammern lösen

s=translate(s,{,

    {

        )

    s=translate(s,},

}

)
s=whiletranslate(s,
,
)

Nach diesem Pass liegt eigentlich alles Zeilenbasiert antes. Kann ser el Yo algo übersehen habe como ego hier simplemente hineingetippt tener y lo sólo para Verständnis dienen se. Natürlich es después de diesem Pass el Source zerstört - pero yo mi Su Parser braucht no brauchbaren Source y debería el Source ruhig derart zerhechseln puede el ligeramente el Informationen extrahierbar son welche para el XML nötig son.

Der Parser debería entonces sólo todavía schauen si el nächste Línea exakt una { es, en a wissen el el aktuelle Línea una Proc ser se. (Wenn no grad mientras que if whileloop & co).

Ein klein wenig gemeiner Es el Tatsache el xpse auch folgendes beherrscht:
KompilierenMarcaSeparación
cadena meineProc(cadena a,b,c,float x,y,z,long q,w,e){//hierbei sería el Rückgabewert True antes Rückgabe en una String konvertiert

    volver true

}

//oder
long meineProc(cadena a,b,c,float x,y,z,long q,w,e)//hierbei sería el Rückgabewert 12 antes Rückgabe en una Largo konvertiert

{

    volver 12

}

//oder
int meineProc(cadena a,b,c,float x,y,z,long q,w,e){volver true}
// lo son (xpse sabe) bool, int, long, float, cadena y mem

Hoffe el hilft una wenig.
 
12.09.2007  
 




Sebastian
König
IF
Exactamente, y si mgl. auch ni Dateiversionsangabe - z.B. FileVer. Das rührt por lo tanto el todos XIDE-Panel/Plugin-SDK-Quelltextdateien una Versionsinfo en el Source tragen welche z.B. auch vom Updatecheck genutzt se. Hierfür gibts 2 Varianten:
KompilierenMarcaSeparación
//Version:0.0.0
/Version:0.0.0e>
Diese Info podría Su Parser ebenfalls de el Source lesen y XML beifügen.


Ok .

IF

Sebastian König
Hmm... ok, en el Principio podría Yo el wohl auch direkt einbauen. Wäre lo porque nötig, dafür mein zeilenbasiertes Parsen (genauer: Zusammenfügen de por Backslash verbundenen Zeilen y anschließendes Auftrennen, si Doppelpunkte vorkommen) aufzugeben? Su XPSE-Codes erinnern sí mittlerweile muy a C++ oder Java, wo Zeilengrenzen simplemente sólo Leerräume son...

Tatsächlich parst xpse no Zeilenbasiert, hätte como aber ne Concepto como Usted Su Parser todavía kleinhalten kannst wobei uno no una vez el Semikolon como (xpse)möglichen Zeilentrenner wegdenken muss. (Das unten aber sólo funktioniert como Usted sí el Source no wirklich prüfen musst etc.)

Sehen nosotros veces el drei einfacheren Problemfälle a:
(...)
Hoffe el hilft una wenig.


Gewissermaßen... Yo bin ahora doch otra vez stark el Meinung, dass esta Arbeit no en media Parser gehört y ihn unnötigerweise en una Vielfaches des reciente Umfangs aufblähen sería...

Yo denke aber, Yo una schönen Alternativ-Vorschlag: Yo podría sin großen Aufwand una Schnittstelle einbauen, el beliebige Präprozessoren unterstützt. Lo se ejecuta entonces simplemente así, dass el Adresse uno Callback-Función angegeben voluntad muss, welche mein internes GetNextLine() ersetzt. Alles, qué esta Función leisten debería, Es el Línea en reinem XProfan y el zugehörige Zeilennummer de el Quelldatei a liefern.

In dieser Variante debería mein Parser entonces garnichts encima zusätzliche Syntax-Features wissen y wäre völlig allgemein mantenido. Außerdem würden eventuelle zukünftige XPSE-Erweiterungen y XPIA automáticamente unterstützt voluntad. Und una zusätzlicher Prozess debería auch no comenzó voluntad... In el Anwendung liefe lo entonces así, que un Projekt como para Ejemplo XIDE simplemente zwei Bibliotheken (libxpdb.lib y libxpse.lib) dazulinkt y el XPDB-Parser el Plug-In bekanntmacht.

Je länger Yo darüber nachdenke, desto mejor gefällt me esta Solución. Sie hält beide Aufgabenbereiche schön modular getrennt y gestattet somit muy einfache Wartung y Erweiterung. Was hältst Usted su?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
12.09.2007  
 



GetNextLine podría pero no ausreichen en Fällen como esta:
KompilierenMarcaSeparación
 
12.09.2007  
 




Sebastian
König
IF
GetNextLine podría pero no ausreichen en Fällen como esta:
KompilierenMarcaSeparación


¿Por qué no? Lo debería en así una Fall simplemente folgendes liefern (jede Línea entspricht una Aufruf de GetNextLine, en el Kommentar es el Zeilennummer, el zusätzlich geliefert se):
KompilierenMarcaSeparación
proc myproc 1

    parámetros abc$ 1
    volver abc$ 3
    ENDPROC 4

Usted verstehst?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
12.09.2007  
 



Hrm Yo verstehe sehrwohl, deshalb mi Yo sí el GetNextLine no ausreichen podría. In og. xpse Línea 1 es - sin el Línea 2 bekannt es no ermittelbar el se trata de un proc es! Was hältst Usted de el Variante el código simplemente bevor Usted ihn passierst komplett a una externo Parser a geben? Usted könntest entonces simplemente con el Rückgabeergebnis trabajo welches sólo auch el kompletten Code enthält.
 
12.09.2007  
 




Sebastian
König
IF
Hrm Yo verstehe sehrwohl, deshalb mi Yo sí el GetNextLine no ausreichen podría. In og. xpse Línea 1 es - sin el Línea 2 bekannt es no ermittelbar el se trata de un proc es!

Hmm... möglicherweise verstehen nosotros gegenseitig falso, aber el debería doch kein Problema ser... el Prä-Parser ;) de hecho puede ya Línea 2 y meinetwegen todavía mehr en el voraus lesen - wichtig wäre sólo, el Ergebnis entonces mi Parser zeilenweise vorzusetzen... (así meinte Yo mein Ejemplo). Aber egal, porque:

IF
Was hältst Usted de el Variante el código simplemente bevor Usted ihn passierst komplett a una externo Parser a geben? Usted könntest entonces simplemente con el Rückgabeergebnis trabajo welches sólo auch el kompletten Code enthält.


Gefällt me muy bien! Im Grunde lautete así sí mein erster Vorschlag (Aufruf de XPSE por media Parser). Natürlich puede ser el entonces como en GetNextLine-Variante en el Plug-In/Callback-Base hacer y así el ständige Starten uno más Prozesses vermeiden. Wichtig wäre sólo, dass todos en Incluir-Ebene stattfindet, also dass siempre sólo genau el angegebene Expediente verarbeitet se y $I-Anweisungen en el Code bleiben. Yo nehme veces a, lo wäre kein großer Aufwand, una passende Lib de deinem bestehenden XPSE-Code a erzeugen, oder?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
12.09.2007  
 



Der Aufwand hält se en Grenzen, klebt entonces aber doch otra vez a me. Yo mi pero yo sería XPSE no como Grundlage para el Lib nehmen - el Abspecken (oder verteilen de ifdefs) wäre deutlich aufwändiger como el bisl Parserei. Yo glaub Yo schreib aber simplemente una Función y schubs Usted el C-Code rüber el Usted entonces direkt igual einbauen kannst. Que el Lib puede nosotros en el pequeño Teil sparen.
 
13.09.2007  
 




Sebastian
König
IF
Der Aufwand hält se en Grenzen, klebt entonces aber doch otra vez a me. Yo mi pero yo sería XPSE no como Grundlage para el Lib nehmen - el Abspecken (oder verteilen de ifdefs) wäre deutlich aufwändiger como el bisl Parserei. Yo glaub Yo schreib aber simplemente una Función y schubs Usted el C-Code rüber el Usted entonces direkt igual einbauen kannst. Que el Lib puede nosotros en el pequeño Teil sparen.

Ok, natürlich kann Yo el Arbeit en Base Deines Codes gern tomar - also sólo her así . In welcher Form genau Yo todos einbaue, schaue Yo entonces veces - Yo möchte el Schnittstelle dafür en cada Fall allgemein halten...

Priorität ha auch primero, dass alles grundsätzlich funktioniert y yo entonces sólo todavía Erweiterungen para weitere Syntax-Elemente einbauen muss. Priorität haben primero Incluye, Encabezamiento, Unidades y Procs.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.09.2007  
 



Gut, entonces tener Yo also Tiempo gewonnen y kann mich primero en mein Zahnweh kümmern. Mi FN se sí nix más como una Pre-Pass ser, Usted puede also primero el normalen más Aktivitäten en el Bezug en XPDB nachgehen. Como wäre Usted el Función al liebsten? Also de los Datentypen her etc... oder findet mi Función en un Largo el Mem des ganzen Sources?
 
13.09.2007  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

34.480 Views

Untitledvor 0 min.
Gast.081514.01.2025
Sven Bader07.08.2021
Michael W.03.04.2021
iF01.11.2020
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie