Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Noch ein Interpreter (Vorlage)

Uploader:MitgliedAndT
Datum/Zeit:27.11.2007 13:44:38

' Vorlage zum Interpreterbau (stabil)
' Zum Programmieren muss eine eine prog.txt erstellt werden wo dann der Quellcode reingeschrieben wird.

' _____ Programmintern(erforderlich)_____

' Declarationen
dim as integer runs,dummy
const prgfile = "prog.txt" ' Datei zum Ausführen

' Function für ConsolenPrint
sub consprint (byval Text as string)
    dim as integer ff = freefile
    open cons for output as #ff
    print #ff,Text
    close #ff
end sub

' _____ Anzahl der Zeilen scannen ____

Print "Zeilen :";
open prgfile for input as #1
do
    input #1,dummy
    runs+=1
loop until eof (1)

close #1
print runs
Print "Code Laden.."
open prgfile for input as #1

dim shared as string cfgcode(runs) ' Programmcodespeicher Declarieren


' ____ Programm Laden ____

open prgfile for input as #1
for i as integer  = 1 to runs
input #1,cfgcode(i)
next
close #1
Print "Fertig."

' ____ Programm Ausführen ____
dim as string cmd
for i as integer = 1 to runs
cmd = lcase(cfgcode(i))
select case cmd
' Ab hier können Befehle eingetragen werden
' Syntax Befehl = CMD, cfgcode(nr) = Zeile in prog.txt
' Komplexere Befehle sind auch rein Theroetisch auch möglich.
    case "res"
    screenres val(cfgcode(i+1)),val(cfgcode(i+2))
    case "pset"
    pset(val(cfgcode(i+1)),val(cfgcode(i+2))),15
    case "beep"
        beep
    case "echo"
        print cfgcode(i+1)
    case "exit"
        exit for
    case "goto"
        i=val(cfgcode(i+1))
    case "escrout"
        if inkey = chr(27) then exit for

    end select

NEXT

color 15
consprint "Programm beendet"
Print "--- END OF PROGRAM ---"

sleep