CGiuseppe TechBlog


Free - Ideas WebLog
Ora e Data

Creare un linguaggio di programmazione interpretato

Avere la "pazza idea" di farlo non è poi comunque avendo le conoscenze è molto facile. Bisogna sapere bene usare Hashtable, Array e lavorare sulle stringhe (conoscere Mid, Replace eccetera). Pubblico una parte del codice sorgente (è ancora in costruzione !):

' BasicAlgorym 0.2
' By NavBack
'Imports System.IO 'Importa il System IO

Module
BasicAlgorytm 'Inizio il mdoulo
'Dim sr As New StreamReader("path") 'Stream reader
'Public cur_line As String = sr.ReadLine 'Usa lo streamreader
Public cur_line As String = Console.ReadLine 'Current line al momento è il read della console
'TODO: è possibile cambiare con uno streamreader
Sub Main() 'Metodo principale
Select Case (LCase(cur_line)) 'Select Case sulla forma minscola di cur_line
Case "%write u[%read]" 'Se si specifica l'uppercase
Console.WriteLine(UCase(Console.ReadLine))
Case "%write l[%read]" 'Se si specifica la lowercase
Console.WriteLine(LCase(Console.ReadLine))
Case "%write %read" 'Se si specifica di stampare ciò che si legge
Console.WriteLine((Console.ReadLine))
End Select
If cur_line.Contains("%write") And cur_line.Contains(Chr(34)) And Not cur_line.Contains("%read") Then
'Se la linea corrente contiene "%write" e ", ma non contiente "%reader"
Dim pstr = cur_line.Replace(Chr(34), Nothing) 'Elimina le "
Console.WriteLine(Mid(pstr,
"%write".Length + 1)) 'Mid dopo la lunghezza di %write + 1
End If
If cur_line.Contains("%write ccat[%read," & Chr(34)) Then 'Se contiene concat (ccat)
Dim toc = "%write ccat[%read," & Chr(34) 'toc è la stringa da individuare
Dim mtoc = Mid(cur_line, toc.ToString.Length) 'elimina ciò che non serve
Dim ttoc1 = mtoc.ToString.Replace(Chr(34), Nothing)'elimina le virgolette
Dim ttoc2 = ttoc1.ToString.Replace("]", Nothing) 'elimina ]
Dim trimmed = Console.ReadLine & ttoc2 'ottiene ciò da concatenare
Console.WriteLine(trimmed)
'Visualizza il testo concatenato
End If
If cur_line.Contains("%write getindex[%read," & Chr(34)) Then 'Se contiene getindex
Dim toc = "%write getindex[%read," & Chr(34) 'toc è la stringa da individuare
Dim mtoc = Mid(cur_line, toc.ToString.Length) 'elimina ciò che non serve
Dim ttoc1 = mtoc.ToString.Replace(Chr(34), Nothing) 'elimina le "
Dim ttoc2 = ttoc1.ToString.Replace("]", Nothing) 'elimina ]
Dim trimmed = Console.ReadLine.IndexOf(ttoc2.ToString) 'restituisce la posizione...
Console.WriteLine(trimmed)
'e la visualizza sullo schermo
End If
End Sub
End
Module
Categoria: Visual Basic .NET
domenica, 10 dic 2006 Ore. 16.28
Statistiche
  • Views Home Page: 10.306
  • Views Posts: 13.710
  • Views Gallerie: 0
  • n° Posts: 20
  • n° Commenti: 5
Archivio Posts
Anno 2006
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003