[Oberon] XML Parser-API for OBERON
Dieter
d.gloetzel at web.de
Wed Jan 20 10:24:58 CET 2016
Hallo Peter,
danke, das scheint ein hilfreicher Tipp zu sein. Nur leider ist es mir
nicht gelungen, ihn zu implementieren.
Was habe ich gemacht?
1. OPO.Obj im Object-Directory unter anderem Namen gesichert.
2. OPO.Mod im Source-Directory gesichert
3. OPO.Mod geändert und kompiliert.
4. OPO.Obj erscheint im Work-Directory.
5. OPO.Obj ins Object-Directory kopiert.
==> Nun funktioniert der Compiler nicht mehr.
Dann habe ich alles rückabgewickelt und den alten Zustand mit 65000
Bytes wiederhergestellt, d.h. den ursprünglichen Objectfile wiederverwendet.
Kann es sein, dass die ETH-Truppe irgendwelche Versionsoder
Konsistenzmerkmale abprüft?
Hast Du eine Ahnung, was ich machen muss?
Gruß Dieter
Am 19.01.2016 um 22:16 schrieb Peter Matthias:
> If object code size is the only real problem you likely can increase
> it by increasing the "CodeLength" constant in OPO.Mod and recompiling
> and reloading OPO.
> ARM and MIPS have 128k default codesize, but the compilers are not
> fully source code compatible with your code and code is less dense, so
> leaving about 70..90k compared to x86 code.
>
> Regards,
> Peter
>
> Am 19.01.2016 um 09:21 schrieb Dieter:
>> Hallo Jörg,
>>
>> danke für Dein Interesse. Genauso, wie von dir beschrieben, bin ich das
>> Problem auch angegangen und habe es auch erfolgreich gelöst.
>>
>> Aber, wie gesagt, schramme ich bei jeder größeren Änderung an der
>> 64K-Grenze für Module herum, und fange dann an, nach Bytes zu suchen,
>> die ich einsparen kann.
>>
>> Meine Frage ist, ob es für den lowlayer (Datenbank oder Objektmodell)
>> bereits irgendwelche Hilfsmittel in Oberon gibt, mit denen man mein
>> Problem eleganter lösen könnte.
>>
>> Ich erinnere mich, dass es an der ETHZ z.B. Compilergeneratoren oder
>> Ähnliches gibt. Aber ich bin nur Physiker und zuwenig Informatiker, um
>> das einschätzen zu können.
>>
>> Und vielleicht wäre das auch mit Kanonen auf Spatzen geschossen.
>>
>> Gruß
>> Dieter
>>
>>
>>
>> Am 19.01.2016 um 08:37 schrieb Jörg Straube:
>>> Dieter
>>>
>>> Deine Aufgabe besteht eigentlich aus zwei Teilen
>>> 1) Syntax: Lowlayer Ein- und Ausgabe der zwei Sprachen (XML und TeX)
>>> 2) Semantik: Umwandeln bzw Mappen der beiden unterschiedlichen
>>> Datenmodelle beider Sprachen
>>> XML scheint mir nach Stimme bzw Instrument sortiert, TeX scheint
>>> nach Takt sortiert.
>>>
>>> Du hast das richtig erkannt, dass du eine Art Objektmodell (du
>>> nanntest es Datenbank) als temporären Zwischenspeicher brauchst, das
>>> die Info aus beiden Datenmodellen beinhaltet.
>>> Nehmen wir mal an, das ganze Ave Maria hätte im Hauptspeicher Platz,
>>> dann brauchst du eine Routine, die das XML parst und mit der Hilfe
>>> vielen NEW()s als Objektmodell mit entsprechend Verlinkungen zum
>>> einfachen Navigieren innerhalb des Objektmodells im Hauptspeicher
>>> ablegst.
>>> Im zweiten Schritt liest eine andere Routine das Objektmodell in der
>>> von TeX geforderten Reihenfolge aus und generiert den TeX-Text.
>>>
>>> Das ist eigentlich vergleichbar mit einem Compiler: Er liest
>>> ASCII-Quelltext ein und gibt RISC5-Assemblercode aus :-)
>>> Auch da hast du einen Scanner, der die Lowlayer Syntax beherrscht
>>> (in dienem Fall XML) und einen Parser, der sich um die Semantik
>>> kümmert. (in deinem Fall die Instrumente und Takte)
>>>
>>> Wenn das Ave Mara nicht im Hauptspeicher Platz findet, wird’s
>>> komplizierter, da du dann entweder das Objektmodell in einer Datei
>>> zwischenspeichern musst, oder du das XML immer wieder von Beginn weg
>>> parst bis du bei dem Takt angelangt bist, den du via TeX gerade
>>> rausschreiben willst.
>>>
>>> Gruss
>>> Jörg
>>>> Am 18.01.2016 um 10:44 schrieb Dieter<d.gloetzel at web.de>:
>>>>
>>>> Doug,
>>>>
>>>> you are right. I should express myself more clearly.
>>>>
>>>> My overall theme is typesetting musical notes. There exists a
>>>> description language called "MusicXML" developed by RECORDARE Inc.,
>>>> which can be exported from several musical typesetting systems.
>>>> And there is a TeX based musical typesetting system called
>>>> "MusiXTeX" with a preprocessor called "PMX".
>>>>
>>>> I want to convert MusicXML as input to PMX. I have solved my
>>>> problem already by brute force Oberon programming, but I wonder
>>>> whether there is a more elegant way to do it.
>>>> My program is pretty long, and several times I hit the compiler
>>>> limit of 64K for module size already. Also the modular layout may
>>>> be less then optimal.
>>>>
>>>> I am looking for something like a database which makes accessible
>>>> the contents of the MusicXML file.
>>>>
>>>> I.e. answering questions like "What is the pitch and duration of
>>>> the 25th note in measure 10 of instrument 7?"
>>>>
>>>> I attach an example.
>>>>
>>>> It would be great, if somebody could share his experience in XML
>>>> programming with Oberon.
>>>>
>>>> Regards,
>>>> Dieter
>>>>
>>>> P.S.: I am using ETHOberon 2.5 plugin for Windows.
>>>>
>>>>
>>>> Am 18.01.2016 um 00:28 schrieb Dougls G. Danforth:
>>>>> Dieter,
>>>>> Your question is ambiguous.
>>>>> Do you mean a parser of Oberon written in XML?
>>>>> If so what is the output of the parser?
>>>>> Or do you mean a parser of Oberon that generates XML?
>>>>>
>>>>> -Doug Danforth
>>>>>
>>>>> On 1/17/2016 7:57 AM, Dieter wrote:
>>>>>> I wonder wether anybody on this mailing list knows about the
>>>>>> existence of an XML Parser API for Oberon.
>>>>>>
>>>>>> Thanks and regards,
>>>>>> Dieter Glötzel
>>>>>>
>>>>>> --
>>>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related
>>>>>> systems
>>>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>>>>
>>>>> --
>>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related
>>>>> systems
>>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>>>
>>>>
>>>> --
>>>> ____________________________________
>>>> Dr. Dieter Glötzel
>>>> Im Rosengarten 27
>>>> 64367 Mühltal
>>>> Tel.: 06151 / 360 82 72
>>>>
>>>> <SchbAvMaSample.xml><AveMariaY.PMX><AveMariaY.pdf>--
>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related
>>>> systems
>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>
>>>
>>> --
>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related
>>> systems
>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>
>>
>> --
>> ____________________________________
>> Dr. Dieter Glötzel
>> Im Rosengarten 27
>> 64367 Mühltal
>> Tel.: 06151 / 360 82 72
>>
>>
>>
>> --
>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
--
____________________________________
Dr. Dieter Glötzel
Im Rosengarten 27
64367 Mühltal
Tel.: 06151 / 360 82 72
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20160120/e45547ae/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jcfijddj.png
Type: image/png
Size: 2489 bytes
Desc: not available
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20160120/e45547ae/attachment.png>
More information about the Oberon
mailing list