Operno-Interpreter 2.1.1

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Operno-Interpreter 2.1.1

Beitrag von Josef Sniatecki »

Viele kennen bestimmt schon den Vorgänger, der syntaxisch sehr schlecht
war. Operno 2.0.1 ist nun viel besser. Ich habe die ganze
Programm-Struktur völlig geändert.

@Alle Administratoren:
Das Alte "Operno-Intrepreter"-Thread könnt ihr löschen/sperren.



Features:
- Operno ist ein Token-Interpreter
- Syntax sehr verständlich
- IDE (Konsole)
- Zwei Kontrollstrukturen (If,While)
- Quellcode zum anschauen

Diese Version ist erst mal nur zum Testen da. Z.B. sind nur
wenige Funktionen verfügbar. Noch ist es nicht möglich
eigene Klassen oder Funktionen zu definieren. Wie gesagt: Ist nur zum
testen.



Hier sind einige Beispiele und Erklärungen:
Operno als Taschenrechner:

Code: Alles auswählen

<-- : 100+200
res : 300
<-- : 4**2
res : 16.0000000
<-- : 10+(10-3)*2
res : 24
Variablen verwalten:

Code: Alles auswählen

<-- : x=123
<-- : x+=5
<-- : x
res : 128
Print-Funktion:

Code: Alles auswählen

<-- : print(321-123,50,200)
--> : (long) 198
--> : (long) 50
--> : (long) 200
Funktionen mehrmals wiederholen:

Code: Alles auswählen

<-- : system\beep(1000,500)(500,250)(250,1000)
While-Schleife:

Code: Alles auswählen

<-- : index=0
<-- : while !(index==5); {
<-- :   index++
<-- :   print(index)
<-- :   }


Dies sind nur wenige von möglichen Dingen. Werde später mehr Zeit
haben, um mehr Beispiele zu posten.

Download:
http://www.file-upload.net/download-114 ... 2.zip.html



Nun wie immer: Kommentare, Vorschläge, Bugs.
mfg Josef

PS: Probiert mal "1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1))))))))))" aus.
Zuletzt geändert von Josef Sniatecki am 07.10.2008 17:15, insgesamt 2-mal geändert.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

Dein Tastenrechner ist fehlerhaft. Bei 5*-(5+5) gibt er 0 zurück.
Hier gibt's einen Code:http://www.purebasic.fr/german/viewtopi ... ausrechnen
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Leider muss man bei meinen Interpreter eine Klammer vor einem
Vorzeichen setzen, sonst kommt es zu einem Fehler. Der Term müsste also
"5*(-(5+5))" lauten. Trotzdem werde ich versuchen, diesen Umweg
wegzuschaffen.

Danke für die Bemerkung, kswb73.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Hier sind noch weitere Tipps:

Pointer/Zeiger definieren und nutzen:

Code: Alles auswählen

<-- : var=123
<-- : ptr=@var
<-- : print(var)
--> : 123
<-- : print(ptr\)
--> : 123
<-- : ptr\=321
<-- : print(var)
--> : 321
Mit einem "\" nach einem Zeiger, kann man auf die Variable,
auf die gezeigt wird, zugreifen.

Synonyme für Funktionen erstellen:

Code: Alles auswählen

<-- : beep=system\beep
<-- : beep(1000,500)
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Little John

Beitrag von Little John »

Josef Sniatecki hat geschrieben:Leider muss man bei meinen Interpreter eine Klammer vor einem Vorzeichen setzen,
Wieso "leider"? Das entspricht genau den Regeln. Das einzige Vorzeichen vor das man keine Klammer setzen muss ist eines ganz am Anfang eines Ausdrucks. Beispielsweise "5*-(5+5)" ist kein gültiger mathematischer Ausdruck.
Josef Sniatecki hat geschrieben:sonst kommt es zu einem Fehler.
Das Programm sollte daher auch besser "Syntaxfehler" o.Ä. anstatt einer 0 ausgeben.

Gruß, Little John
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Little John hat geschrieben:
Josef Sniatecki hat geschrieben:Leider muss man bei meinen Interpreter eine Klammer vor einem Vorzeichen setzen,
Wieso "leider"? Das entspricht genau den Regeln. Das einzige Vorzeichen vor das man keine Klammer setzen muss ist eines ganz am Anfang eines Ausdrucks. Beispielsweise "5*-(5+5)" ist kein gültiger mathematischer Ausdruck.
Josef Sniatecki hat geschrieben:sonst kommt es zu einem Fehler.
Das Programm sollte daher auch besser "Syntaxfehler" o.Ä. anstatt einer 0 ausgeben.

Gruß, Little John
Du hast schon recht, Little John. Doch Skriptsprachen sollten auch so schnell
wie möglich zu schreiben sein. Natürlich könnte ich jetzt auch sagen, dass
Operno nur mathematische Ausdrücke erlaubt.

Das mit den Fehlermeldungen: Diese Version ist nur eine Test/Beta-
Version. Ich will zuerst alle Funktionen programmieren, bevor ich mit
den Fehlermeldungen anfange.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Little John

Beitrag von Little John »

Josef Sniatecki hat geschrieben:Du hast schon recht, Little John. Doch Skriptsprachen sollten auch so schnell wie möglich zu schreiben sein.
Ich sehe keinen Grund, falsche Schreibweisen zu unterstützen. Ist aber natürlich in diesem Fall Deine Entscheidung.

Gruß, Little John
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

Wird aber auch von PureBasic unterstützt.

Code: Alles auswählen

debug 5*-(5+5)
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ja ja, PB lässt sogar so ein "schwachsinn" duchgehen und rechnet sogar richtig ^^:

Code: Alles auswählen

Debug 5----5
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Was ist daran Schwachsinn? Drei unäre und ein binäres Minus. Ein Parser
sollte das richtig machen.
Antworten