Seite 2 von 2

Verfasst: 30.08.2008 17:54
von milan1612
ts-soft hat geschrieben:Wenn Du Deinen Interpreter mal kommerzialisieren möchtest, mußte Dir
wohl nen neuen Namen ausdenken, weil Operno hat schon jemand ausge-
dacht und wohl auch geschützt :wink:
Operno

Gruß
Thomas
Nope, wenn du dir das mal genauer anschaust wirst du das hier finden:
The International Classification of Goods and Services for the Purposes of the Registration of Marks (Nice Classification) and the list of goods and services classified according thereto:
Pharmaceutical preparations and substances
Also, solange du nichts das mit der Pharmaindustrie in Verbindung steht
so nennst geht das schon in Ordnung.

EDIT: Ups, zu spät... :mrgreen:

Verfasst: 30.08.2008 17:54
von Josef Sniatecki
Suppppiii

EDIT:
:bounce:

Verfasst: 30.08.2008 18:16
von ts-soft
Na gut, für Musik ist es wohl auch ein Begriff: Wiener Operno.
Also kein PlaySound in Deinen Interpreter einbauen :mrgreen:

Ne, ich fand den Satz, das Du Dir das Wort ausgedacht hast interessant :wink:

Verfasst: 30.08.2008 18:54
von Josef Sniatecki
Das mit "Wiener Operno" habe ich auch schon mal gefunden.

Ich selbst finde den Namen interessant: Als ich 10 war fiel mir der Name
irgendwie ein. Echt Mystisch. :lol:.

Verfasst: 30.08.2008 20:01
von Josef Sniatecki
Neue Version:

Download (noch kleiner als vorher :? :D)
http://www.file-upload.net/download-107 ... o.zip.html

-Zwei neue Befehle:
- variable,vector operation
- array,define block

-Neues Bild.
-Rechtschreibfehler beseitigt.

Wenn ich euch mit meiner Operno-Syntax überrolle, dann sagt/schreibt mir
bescheit.

Verfasst: 31.08.2008 10:54
von Josef Sniatecki
Habe wieder eine neue Version. Diesmal habe ich aber auch zwei wichtige
Kapitel in das deutsche Tutorial eingebaut.
Anbei habe ich noch die 'Term' Funktion hinzugefügt. Die Beispiele
werden euch diese Funktion (hoffentlich) erklären.

Der Downloadlink auf der ersten Seite ist der neueste.
Oder auch hier:
http://www.file-upload.net/download-107 ... o.zip.html

Wäre wiederum für Kommentare,Bugs und Vorschläge dankbar.

Verfasst: 04.09.2008 17:29
von cxAlex
Seas

Zuerst mal: Repekt. Da ich auch gerade an einem Interpreter arbeite weis ich das so was ein Haufen Arbeit ist. Das ganze macht auf mich keinen schlechten Eindruck, toll währe es noch wenn du Schleifen einbauen würdest, ansonst schon ganz gut.

Ein paar Vorschläge habe ich noch:
An Prozeduren die einen übergebenen String nur analysieren,weitergeben usw. ABER nicht verändern solltest du nur Pointer übergeben, was speziell bei vielen langen Zeichenketten erheblich schneller ist.

z.B.: die Funktion AddCommand()

Code: Alles auswählen

Procedure.l AddCommand(Command.s)
  Protected *Command.String, *Item.List_Item
  
  *Item = List_ItemL(*CommandList, @*Command)
  *Command\S = Command
  ProcedureReturn *Item
EndProcedure
Du übergibst Command als String, und übergiebst den Pointer an *Command und List_ItemL(). Sinnvoller währe (meiner Meinung nach):

Code: Alles auswählen

Procedure.l AddCommand(*Command.String)
  Protected *Item.List_Item
  
  *Item = List_ItemL(*CommandList, *Command)
  ProcedureReturn *Item
EndProcedure
So was hab ich an mehreren Stellen deines Codes gesehen. Vielleicht kannst du so ja die Performance noch steigern.

Verfasst: 04.09.2008 19:08
von Josef Sniatecki
@cxAlex
Leider verstehst du mein Template nicht. (Könnte es mal erklären :D).

List_ItemL gibt einen Zeiger auf ein neu erstelltes Item/Element zurück.
Das Element bestitzt folgende Struktur:

Code: Alles auswählen

Structure List_Item
  *Next.List_Item
  *Previous.List_Item
  *Memory
EndStructure
Um auf "Memory" zuzugreifen müsste ich folgendes machen:

Code: Alles auswählen

*Command.String
*Item.List_Item

*Item=List_ItemL(*List)
*Command=*Item\Mem
*Command\S="Blabla"
Doch um sich eine Zeile zu erspaaren, kann man als zweiten Parameter
eine Addresse auf den Zeiger angeben, der die Addresse von "Memory"
beinhalten muss:

Code: Alles auswählen

*Command.String
*Item.List_Item

*Item=List_ItemL(*List,@*Command)
*Command\S="Blabla"
Mein Template ist also nicht sehr primitiv. Ich habe schon dafür gesorgt,
dass alles so schnell wie möglich läuft.



Und noch was: Schleifen sind möglich. Schau dir die Beispiele an. :wink:



Zu deiner Interresse an Interpreter:
Mir macht es spaß Interpreter zu programmieren. Man hat die Möglichkeit
seine eigene Sprache auf eine einfache (oder auch schwere :D) Weise
zu gestalten. Ich bin gerade an einem Prototyp eines Token-Interpreters.
Die Syntax sieht einfach prächtig aus. EDIT: nun ist es so weit

Verfasst: 04.09.2008 19:21
von cxAlex
Ah...sry.

Da hatte ich ne Denkblockade, i hab die funktion anders interpretiert.

Liegt dran das mein Interpreter intern anders arbeitet (klar :lol: sonst wärs ja derselbe) und da hab ich das wohl auf meinen umgelegt.

Ich wollte nicht sagen das deine Version primitiv ist, sollte nur ein Vorschlag sein. Das mit den Scheifen hab ich nich gesehen, hab das Repeat-bsp. jetzt gefunden. Muss sagen, super arbeit.