Seite 2 von 4

Verfasst: 13.01.2005 15:52
von AndyX
LittleFurz hat geschrieben:Willst du nicht doch versuchen den Easy Interpreter zu mißhandeln :? ?
Wieso denn? :roll:
LittleFurz hat geschrieben:Easy ist auf jeden Fall lesbarer als das da :freak:.
Stimmt. Hab ja auch nix anderes behauptet. :mrgreen:
LittleFurz hat geschrieben:Easy kennt da wenigstens Kommentare :mrgreen:
Naja, OMGWTFIT s ja auch nich so ne tolle und umfangreiche Sprache wie Easy oder... PureBasic!!!

Hmmm... Ich glaub ich werd OMGWTFIT jetzn bissl unkomplizierter machen. (mehr und bessere Befehle) :D

Mfg,
AndyX

Verfasst: 13.01.2005 18:12
von AndyX
TADAAAA!!!
Neue Version von OMGWTFIT da. Is jetz viel besser.
Der Console Title steht jetzt immer am anfang der omg datei.
Die Asc-ändern Befehle sind auch anders einfach mal das HW-Prog durchschauen. :D

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$)
 ReadFile(0,datei$)
 ConsoleTitle(ReadString())
 
 For i = 0 To 100000
  
  *memory = AllocateMemory(1000)
  *highmemory = AllocateMemory(1000)
  ReadData(*memory,1)
  befehl$ = PeekS(*memory)
  FreeMemory(*memory)
  
  Select befehl$
   Case ":"
    ReadData(*highmemory,2)
    par$ = PeekS(*highmemory)
    asc = Val(par$)+100
   Case "."
    ReadData(*highmemory,2)
    par$ = PeekS(*highmemory)
    asc = Val(par$)
   Case ";"
    ReadData(*highmemory,2)
    par$ = PeekS(*highmemory)
    asc = Val(par$)+200 
   Case "!"
    Print(Chr(asc))
   Case "§"
    Delay(250)
   Case "#"
    ClearConsole()
  EndSelect
  
  If Eof(0) <> 0
   CloseConsole()
   Goto main
  EndIf
 
  FreeMemory(*highmemory)
  
 Next i
 
EndProcedure

main:

OpenConsole()
ConsoleTitle("OMGWTFIT")
ClearConsole()
Print("OMGWTFIT Sourecode: ")
datei$ = Input()

If datei$ = "exit"
 End
ElseIf datei$ = "getc"
 datei$ = GetClipboardText()
 Print("      "+datei$)
EndIf

SetClipboardText(datei$)
PrintN("")
asc = 0

Delay(750)

Interpreter(datei$)
Die Befehle: :mrgreen:

Code: Alles auswählen

OMGWTFIT - Oh My God What The F*** Is This?

.number Sets the Asc Value. (0 to 99)
:number Sets the Asc Value. (100 to 199)
;number Sets the Asc Value. (200 to 255)
!       Output.
§       Waits 250 ms.
#       Clear the Screen.
Hello World Prog: <)

Code: Alles auswählen

Hello, world in OMGWTFIT
#.72!§:01!§:08!§!§:11!§.44!§.32!:19!§
:11!§:14!§:08!§:00!§.33!§§§§§§§§#§§§§
Wenn ihr Verbesserungsvorschläge habt, bitte posten!!! :allright:
Bugs suchen wär auch nett.

Danke.

Mfg,
AndyX

Verfasst: 15.01.2005 18:53
von AndyX
Soooooooooooo!

Ich hab mich heut wieder an meinen Interpreter rangehängt und habn paar Sachen verbessert. Vorallem den Namen. :D :D :D :D :D :D
Heißt jetzt C--. :lol: :lol: :lol:

Es gibt jetzt ne dateinamen-zwischenablage (clipboard), man muss einfach getc schreiben, um den vorherigen Dateinamen zu holen. Ich weiß es ist schnick-schnack, aber ich will herumexperimentieren. :D

Noch was wichtiges: Mit end kann man beenden. :lol: (hoffe, dass das keiner will. :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: )

okay, genug geredet, hier ist der Code: (wird bald zu lang zum posten. :oops:)

Code: Alles auswählen

;C-- C-- C-- C-- C-- C-- = Das Gegenteil von C++

OpenConsole()
ConsoleTitle("Starting...")
Print("C-- Interpreter is starting...")
Delay(1500)
ClearConsole()
Goto main

Procedure Interpreter(datei$)
 
 If ReadFile(0,datei$)
  ConsoleTitle(ReadString())
 
  For i = 0 To 100000
   
   *memory = AllocateMemory(10)
   *highmemory = AllocateMemory(10)
   *highermemory = AllocateMemory(10)
   *megahighmemory = AllocateMemory(10)
   *waitmemory = AllocateMemory(50)
  
   ReadData(*memory,1)
   befehl$ = PeekS(*memory)
   FreeMemory(*memory)
  
   Select befehl$
    Case ":"
     ReadData(*highmemory,2)
     par$ = PeekS(*highmemory)
     asc = Val(par$)+100
    Case "."
     ReadData(*highmemory,2)
     par$ = PeekS(*highmemory)
     asc = Val(par$)
    Case ";"
     ReadData(*highmemory,2)
     par$ = PeekS(*highmemory)
     asc = Val(par$)+200 
    Case "!"
     ReadData(*highermemory,1)
    
     If PeekS(*highermemory) = "0"
      Print(Chr(asc))
     ElseIf PeekS(*highermemory) = "1"
      Print(Chr(ascin))
     ElseIf PeekS(*highermemory) = "2"
      Print(in$)
     EndIf
    
    Case "§"
     ReadData(*waitmemory,4)
     Delay(Val(PeekS(*waitmemory)))
    Case "#"
     ClearConsole()
    Case "?"
     asc = Random(255)
    Case "$"
     ReadData(*megahighmemory,1)
    
     If PeekS(*megahighmemory) = "0"
      ascin = Asc(LSet(Input(),1))
     ElseIf PeekS(*megahighmemory) = "1"
      in$ = Input()
     EndIf
    
    Case "-"
     Goto main
   EndSelect
  
   If Eof(0) <> 0
    Goto main
   EndIf
 
   FreeMemory(*highmemory)
   FreeMemory(*highermemory)
   FreeMemory(*megahighmemory)
   FreeMemory(*waitmemory)
  
  Next i
 
 ElseIf ReadFile(0,datei$) = 0
  ClearConsole()
  Print("Error! Could not open File! C-- is restarting Interpreter...")
  Delay(2750)
  ClearConsole()
  ConsoleTitle("Restarting...")
  Delay(1500)
  SetClipboardText("")
  Goto main
 EndIf
 
EndProcedure

main:

ConsoleTitle("C-- Interpreter")
ClearConsole()
Print("C-- Sourcecode: ")
datei$ = Input()

If datei$ = "end"
 End
ElseIf datei$ = "getc"
 datei$ = GetClipboardText()
 Print("       "+datei$)
EndIf

SetClipboardText(datei$)
PrintN("")
asc = 0
ascin = 0
in$ = ""

Delay(750)

Interpreter(datei$)
Die Befehle: :mrgreen:

Code: Alles auswählen

C-- Befehle

.number Asc Wert von 0 bis 99 festlegen.
:number Asc Wert von 100 bis 199 festlegen.
;number Asc Wert von 200 bis 255 festlegen.
!       Ausgeben, 0 für Hauptvariable, 1 für den Eingabe-Asc-Wert und 2 für die Eingabevariable.
§ms     Wartet [ms] Millisecunden.
#       Bildschirm löschen.
?       Zufälliger Asc Wert.
$number 0 = Ein Zeichen eingeben, 1 = mehrere Zeichen eingeben.
-       Ende.
Erweitertes (!!!) Hello-World-Prog:

Code: Alles auswählen

Advanced Hello, world in C--

This program demonstrates what you can do with Cminusminus

# .72 !0 §0250 :01 !0 §0250 :08 !0 §0250 !0 §0250 :11 !0 §0250 .44 !0 §0250 .32 !0 :19 !0 §0250 :11 !0 §0250 :14 !0 §0250 :08 !0 §0250 :00 !0 §0250 .33 !0 §2000 # .80 !0 §0100 :08 !0 §0100 :01 !0 §0100 .97 !0 §0100 :15 !0 §0100 :01 !0 §0100 .32 !0 :01 !0 §0100 :10 !0 §0100 :16 !0 §0100 :01 !0 §0100 :14 !0 §0100 .32 !0 :10 !0 §0100 :17 !0 §0100 :09 !0 §0100 .98 !0 §0100 :01 !0 §0100 :14 !0 §0100 .33 !0 §0100 .32 !0 $1 #

Das ist ein Kommentar =D

§0500 .89 !0 §0100 :11 !0 §0100 :17 !0 §0100 .32 !0 §0100 :04 !0 §0100 .97 !0 §0100 :18 !0 §0100 :01 !0 §0100 .32 !0 §0100 :16 !0 §0100 :21 !0 §0100 :12 !0 §0100 :01 !0 §0100 :00 !0 §0100 .58 !0 §0100 .32 !0 §0100 !2 §2000 # .82 !0 .97 !0 :10 !0 :00 !0 :11 !0 :09 !0 .32 !0 .67 !0 :04 !0 .97 !0 :14 !0 .97 !0 .99 !0 :16 !0 :01 !0 :14 !0 :15 !0 .58 !0 .32 !0 §0750 ? !0 §0500 ? !0 §0500 ? !0 §0500 ? !0 §2000 # .69 !0 §0500 :10 !0 §0500 :00 !0 §0500 .33 !0 §2500 # §1000 -
Achja hab ich fast vergessen:
LittleFurz hat geschrieben:Easy kennt da wenigstens Kommentare :mrgreen:
C-- kann sehrwohl Kommentare. Es grast einfach nur den Code nach Befehlen ab, die es kennt, alles andere wird ignoriert. :D

Es gilt wieder: Käfer töten!!! :twisted: :twisted: :twisted:
Eure Meinung wäre auch toll. :allright:

Schon wieder fast vergessen: WIE MACHE ICH IF-ABFRAGEN???
Ich tu da schon Tagelang grübeln.

Wenn ihr gleich auch noch rausrücken würdet, wie Schleifen gehen, wärs echt cool. :D :lol: :D

Mfg,
AndyX

Verfasst: 15.01.2005 19:23
von Zaphod
mit sprüngen innerhalb der ausführung deines skriptes.

Verfasst: 16.01.2005 16:47
von Kaeru Gaman
ich finde es etwas unbequem, dass du die tokens auch als ein-zeichen-codes ein und ausgibst.

statt '#' sollte im eingabefenster z.b. 'Clr' erscheinen, und wenn man 'Clr' eingibt, wird '#' in den code geschrieben.

zu If und Schleifen:
Zaphod hat recht.
implementire erst eine art 'Jump', dann kannst du leichter auf ein bedingtes jump erweitern :wink:

zusatz:
wenn du entweder Hex-darstellung, oder grundsätzlich dreistellige zahlen benutzt,
kannst du dir drei verschiedene tokens für die wertfestlegung sparen.
(wird bald zu lang zum posten. )
stelle ihn später auf deinen webspace (zur not leih dir welchen), poste nurnoch nen link.

Verfasst: 16.01.2005 16:49
von MVXA
Es gibt bereits ein Compiler mit dem Namen 'C--'. Ist ziehmlich gut. Versuch was anderes. /:->

Verfasst: 22.01.2005 17:02
von AndyX
Ich mach das gnaze noch mal voll neu. Es wird Variablen (string oder Long) geben, der code wird nicht so ein wurschtel sein, Die sprache wird monkey heißen und affenlaute als Befehle haben, z.b: Eek, Chee, Whee. Gut ein paar hab ich von Monkey Island abgeguggt, aber die meisten sind selber gefunden. If-Abfragen werden wahrscheinlich auch sein.

Mfg,
AndyX

Verfasst: 22.01.2005 18:28
von Lars

Verfasst: 22.01.2005 18:37
von ts-soft
Ich glaube AndyX meinte mehr Twelve Monkeys, daher auch Twelve Productions :D

Verfasst: 22.01.2005 18:45
von Lars
ts-soft hat geschrieben:quote]Ich glaube AndyX meinte mehr Twelve Monkeys, daher auch Twelve Productions :D
Ich verstehe zwar nicht ganz, was du damit ausdrücken willst, aber das
war als eine Anregung zu Gunsten des Humors gedacht :)