FakeBasic1.0 程序和源代码

[FakeBasic1.0 程序和源代码]
每接触一门语言,一般都以“Hello world!”闯进这个陌生的世界,FakeBasic也不例外。看上去有点像Basic,但我会尽量摆脱以往Basic语言里的一些语法限制,同时增添一些更吸引人的色彩!

 

 

查看FakeBasic介绍

http://xiaoxia.org/2654.html

 

下载地址:

http://home.xxsyzx.com/upfiles/fb1.zip

 

以下是 readme.txt 的内容

 

[ShrimpScript]
版本:1

 

ShrimpScript类是用来执行FakeBasic脚本语言的一个简单的解释器,
可以方便地嵌入你的程序中使用。在未经原作者同意的情况下,请勿
用于商业或不正当用途,谢谢!
你可以通过addFunction来添加外来函数,让脚本程序能够调用你的
C/C++程序以达到你的目的。也可以通过添加、修改类的代码来增强
脚本解释功能。当前版本支持浮点类型和浮点运算。
如果在使用程序的过程中遇到什么问题,请和我联系,谢谢!

–小虾([email protected])
–http://home.xxsyzx.com
一些语法示例(忽略大小写):

'变量声明
Dim a, b, c
Const d = 1
 
'用赋值形式初始化变量时,可以不写dim的声明
a = 1
b = 2
c = a + b
'字符串
a = "hello "
b = a + "world."
print b, endl

'条件
If a = b Then
    message "a=b", endl
Else
    …
End If
 
'选择
Select Case i
Case 1
    message "1"
Case 2, 3, 4
    message "2,3,4"
Case 5
    message "5"
End Select
 
'for循环
For i = 1 To 10
    …
Next
For i = 1 To 100 Step 2
    …
Next
For i = 100 To 1 Step -1
    …
    Exit For
Next
 
'loop循环
Do While i <= 10
    i = i + 1
Loop
Do Until i > 10
    i = i + 1
Loop
Do
    i = i + 1
Loop While i <= 10
Do
    i = i + 1
Loop Until i > 10
While i <= 10
    …
    i = i + 1
Wend
 

'函数
Function f(a, b, c)
    f = a + b + c
End Function
 
'包含文件
Import std.io

 

FakeBasic1.0 程序和源代码》有32个想法

  1. Xiaoxia

    @Chinasb,我想了一下,果真成了大杂烩了! 哈哈,挺有意思。
    @stay,多上一些技术站点,可以学到很多东西的 🙂

    回复
  2. Xiaoxia

    @geekgao: 还未学。大四的课程吧。我只是略略看了一些网上的文献,觉得写个简单的语法分析器还是挺简单的。
    @yoyo:你才牛!

    回复
  3. zhtx

    我觉得可以增加调用syscall和shell的功能达到vbs的作用 ~ 这样就有vbs for linux了,再移植一下又跑到windows上,再发展一下就是一个新解释语言了~~

    回复
  4. zhtx

    已经把FakeBasic 1.0移植到Linux了,并改名叫QKBAS,想增加一点功能和一个交互式shell当作一个计算器语言,不知道怎么实现basic的input?

    回复
    1. zhtx

      对了,能不能嵌入html当作一个计算用的脚本语言?觉得在一些地方用js太大材小用,或许可以写一些库,比如sql之类的,这样可以在一定程度上替代vbs。

      最近有点烦,把这个东东当玩具玩一玩,就是觉得代码挺多的。。。

      回复
        1. zhtx

          我也是这么想的,如果全部塞在一个里面太庞大了(而且glibc也能调用了)。
          我还想把那个解释器核心直接拆出来放在一个动态库里面去,这样不用直接嵌入代码,调用下库就行了。。

          回复
    2. zhtx

      摸索了一会,搞定了
      //cf指自定义函数,非疼X某game
      void cf_input(vector& runtimeStack, ShrimpVariable& result, int pcount)
      {
      string str;
      cin >> str;
      ShrimpVariable &v = runtimeStack[1];
      v.setString(str);
      }

      例子:
      const endl = “\n”

      function main()
      dim str
      print “Hello, World!”, endl
      print “请输入任意字符,程序将重复它:”
      input str
      print str
      end function

      放出来,希望对大家有用,不过我觉得内部的类型判断器挺鸡肋的,不如用户自己指定,像VB那样:Dim a As Integer, b As String

      回复
      1. Xiaoxia 文章作者

        无类型的脚本语言不好吗?我蛮喜欢这样子的!至于那个类型判断和转换器,的确,我很懒!

        回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据