ich hab mal wieder
wie gesagt, nurmal einpaar funktionen(höchstens 6, naja vielleicht 7 oder 8
Danke im Voraus.
Mfg,
AndyX

Naja, so n kleiner Interpreter, der in so nem window laufen wird, eine geöffnete datei wird ausgelesen und der code darin schritt für schritt ausgeführt. Zuerst zerkleinert, dann interpretiert oder so irgendwie.brotkasten-deluxe hat geschrieben:Hmm wie gesagt da musste mir auch vielleicht ma mehr infos zu deinem prog geben damit ich dir genauer unter die arme greifen kann
Code: Alles auswählen
MakeVarNum #ID Um Variable Long zu erstellen
MakeVarString #ID Um Variable String zu erstellen
SelectVar #ID Variable auswählen
SetVar #Inhalt In Variable schreiben
Out #String In Console schreiben (Console wird automatisch geöffnet)
In #ID Etwas eingeben lassen und in Variable speichern
Clean Console cleanen
Wait #Millsekunden Zeit wartenJa bitte, kann ich vielleicht brauchen. Will ich mir ansehen.ts-soft hat geschrieben:Wenn Du Interesse hast Dir das anzugucken, schick ich dir den gesamten Code per E-Mail als Zip-Anhang.
Ist gut, nurn bissl zu kompliziert für mich.LittleFurz hat geschrieben:kannst dir ja mein Easy Interpreter ansehen
Code: Alles auswählen
;/
;/[Console pur] Interpreter
;/
;{-Vars etc.
Structure StringVar
Name.s
Wert.s
EndStructure
NewList Strings.StringVar()
NewList Lines.s()
;}
;{-Proceduren
Procedure.s GetParam(str.s) ;Gibt einen Parameter zurück
tPos.l = FindString(str," ",0)
ProcedureReturn LTrim(Mid(str,tPos,Len(str)-tPos+1))
EndProcedure
Procedure.s GetSecondParam(str.s) ;Gibt den zweiten Parameter zurück von 2en
tPos.l = FindString(str,",",0)
ProcedureReturn LTrim(Mid(str,tPos+1,Len(str)-tPos))
EndProcedure
Procedure.s GetFirstParam(str.s) ;Gibt den ersten Parameter zurück von 2en
tPos.l = FindString(str,",",0)
tProPos.l = FindString(str," ",0)
ProcedureReturn LTrim(Mid(str,tProPos,tPos-tProPos))
EndProcedure
Procedure.s GetBefehl(str.s) ;Gibt den Befehls Namen zurück
tPos.l = FindString(str," ",0)
If tPos
ProcedureReturn RTrim(Mid(str,0,tPos))
Else
ProcedureReturn str
EndIf
EndProcedure
Procedure.s GetStringWert(str.s) ;Gibt den Wert des Strings zurück
ForEach Strings()
If Strings()\Name = str
ProcedureReturn Strings()\Wert
EndIf
Next
EndProcedure
Procedure UseString(str.s)
ForEach Strings()
If Strings()\Name = str
ProcedureReturn 1
EndIf
Next
ProcedureReturn 0
EndProcedure
;}
;{-File einlesen
If ReadFile(0,"Test.int")
While Eof(0) = 0
str.s = ReadString()
If Mid(str,0,1) <> ";" And str <> ""
AddElement(Lines())
Lines() = str
EndIf
Wend
CloseFile(0)
EndIf
;}
;-Interpretieren
OpenConsole()
CallDebugger
ForEach Lines()
Befehl.s = GetBefehl(Lines())
Select Befehl.s
Case "STRING"
If UseString(GetFirstParam(Lines())) = 0
AddElement(Strings())
Strings()\Name = GetFirstParam(Lines())
Strings()\Wert = GetSecondParam(Lines())
Else
Strings()\Wert = GetSecondParam(Lines())
EndIf
Case "DEBUGSTRING"
Print(GetStringWert(GetParam(Lines())))
Case "INPUT"
UseString(GetParam(Lines()))
Strings()\Wert = Input()
Case "INPUTCLEAR"
Input()
Case "NLINE"
PrintN("")
Case "DELAY"
Delay(Val(GetParam(Lines())))
Case "GOTO"
SelectElement(Lines(),Val(GetParam(Lines())))
EndSelect
Next
Code: Alles auswählen
STRING hehe,MUHAA
DEBUGSTRING hehe
DELAY 100
GOTO 0
Code: Alles auswählen
; OMGWTFIT - Oh My God What The F*** Is This?
; Eine Programmiersprache, bei der man sich wirklich den A**** aufreißen muss, nur um mal ein Hello World Prog zu schreiben!!!
Goto main
Procedure Interpreter(datei$,title$)
OpenConsole()
ConsoleTitle(title$)
ReadFile(0,datei$)
*memory = AllocateMemory(1000)
For i = 0 To 100000
ReadData(*memory,1)
befehl$ = PeekS(*memory)
Select befehl$
Case ":"
asc + 1
Case "|"
asc - 1
Case "!"
Print(Chr(asc))
Case "§"
Delay(250)
EndSelect
FreeMemory(*memory)
If Eof(0) <> 0
CloseConsole()
Goto main
EndIf
Next i
EndProcedure
main:
If OpenWindow(0,0,0,225,70,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"OMGWTFIT")
CreateGadgetList(WindowID(0))
ButtonGadget(1,10,10,205,50,"Open")
Repeat: If WaitWindowEvent() = #PB_Event_CloseWindow:End:EndIf
Until WaitWindowEvent() = #PB_Event_Gadget
gadget = EventGadgetID()
If gadget = 1
CloseWindow(0)
ReadFile(2,"OMGWTFIT.txt")
title$ = ReadString()
datei$ = OpenFileRequester("Wähle OMGWTFIT SourceCode","","OMGWTFIT Datei(*.OMG)|*.OMG",0)
asc = 0
Interpreter(datei$,title$)
EndIf
EndIfCode: Alles auswählen
OMGWTFIT - Oh My God What The F*** Is This?
: Sets the Asc Value up.
| Sets the Asc Value down.
! Output.
§ Waits 250 ms.Code: Alles auswählen
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::!::::::::::::::::::::::::::::::|!:::::::!!:::!
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:::!||||||||||||!
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::!||||||||!
:::!||||||!||||||||!||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:::!§§§§§§§§§§Willst du nicht doch versuchen den Easy Interpreter zu mißhandelnAndyX hat geschrieben:Code: Alles auswählen
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::!::::::::::::::::::::::::::::::|!:::::::!!:::! ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:::!||||||||||||! :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::!||||||||! :::!||||||!||||||||!||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||:::!§§§§§§§§§§