[FakeBasic1.0 程序和源代码]
每接触一门语言,一般都以“Hello world!”闯进这个陌生的世界,FakeBasic也不例外。看上去有点像Basic,但我会尽量摆脱以往Basic语言里的一些语法限制,同时增添一些更吸引人的色彩!
查看FakeBasic介绍
下载地址:
http://home.xxsyzx.com/upfiles/fb1.zip
以下是 readme.txt 的内容
[ShrimpScript]
版本:1
ShrimpScript类是用来执行FakeBasic脚本语言的一个简单的解释器,
可以方便地嵌入你的程序中使用。在未经原作者同意的情况下,请勿
用于商业或不正当用途,谢谢!
可以方便地嵌入你的程序中使用。在未经原作者同意的情况下,请勿
用于商业或不正当用途,谢谢!
你可以通过addFunction来添加外来函数,让脚本程序能够调用你的
C/C++程序以达到你的目的。也可以通过添加、修改类的代码来增强
脚本解释功能。当前版本支持浮点类型和浮点运算。
C/C++程序以达到你的目的。也可以通过添加、修改类的代码来增强
脚本解释功能。当前版本支持浮点类型和浮点运算。
如果在使用程序的过程中遇到什么问题,请和我联系,谢谢!
一些语法示例(忽略大小写):
'变量声明
Dim a, b, c
Const d = 1
'用赋值形式初始化变量时,可以不写dim的声明
a = 1
b = 2
c = a + b
a = 1
b = 2
c = a + b
'字符串
a = "hello "
b = a + "world."
print b, endl
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
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 10
…
Next
For i = 1 To 100 Step 2
…
Next
…
Next
For i = 100 To 1 Step -1
…
Exit For
Next
…
Exit For
Next
'loop循环
Do While i <= 10
i = i + 1
Loop
Do While i <= 10
i = i + 1
Loop
Do Until i > 10
i = i + 1
Loop
i = i + 1
Loop
Do
i = i + 1
Loop While i <= 10
i = i + 1
Loop While i <= 10
Do
i = i + 1
Loop Until i > 10
i = i + 1
Loop Until i > 10
While i <= 10
…
i = i + 1
Wend
…
i = i + 1
Wend
'函数
Function f(a, b, c)
f = a + b + c
End Function
'包含文件
Import std.io
Import std.io
膜拜大牛…不懂Basic…纯围观
前来支持。
前来膜拜
啊~ 不需要懂basic才能玩的,不过懂basic就更觉得好玩~
默默的膜拜
貌似还有点C++的味道
时间仓促,代码可能写的很烂,有不正当的地方请指出!
太厉害了.
经常来看,但是没留过言,呵呵,感觉你太牛了,恩…………
Good job!
VB的Dim
python的print
C++的endl
JAVA的Import
应用尽有。哈哈….
以后不上空间,不上校内,跟你学知识,呵呵!
@Chinasb,我想了一下,果真成了大杂烩了! 哈哈,挺有意思。
@stay,多上一些技术站点,可以学到很多东西的 🙂
very nice~
@harite, you are nice too!
觉得不能和你比较,我的博客是www.bigworld.phost.ws
这么强大,弱弱的问一句,你学编译原理拉?
牛掰啊
@geekgao: 还未学。大四的课程吧。我只是略略看了一些网上的文献,觉得写个简单的语法分析器还是挺简单的。
@yoyo:你才牛!
我觉得可以增加调用syscall和shell的功能达到vbs的作用 ~ 这样就有vbs for linux了,再移植一下又跑到windows上,再发展一下就是一个新解释语言了~~
很简单的,我的代码示例里就内置了system命令。
已经把FakeBasic 1.0移植到Linux了,并改名叫QKBAS,想增加一点功能和一个交互式shell当作一个计算器语言,不知道怎么实现basic的input?
对了,能不能嵌入html当作一个计算用的脚本语言?觉得在一些地方用js太大材小用,或许可以写一些库,比如sql之类的,这样可以在一定程度上替代vbs。
最近有点烦,把这个东东当玩具玩一玩,就是觉得代码挺多的。。。
可以弄个函数,调用外部dll的api,这样就能够实现更多的功能了吧!
我也是这么想的,如果全部塞在一个里面太庞大了(而且glibc也能调用了)。
我还想把那个解释器核心直接拆出来放在一个动态库里面去,这样不用直接嵌入代码,调用下库就行了。。
摸索了一会,搞定了
//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
无类型的脚本语言不好吗?我蛮喜欢这样子的!至于那个类型判断和转换器,的确,我很懒!
哇!我也想改进它!!!这个寒假,有计划!
看成f*ckbasic了……
很不错阿
http://home.xxsyzx.com/upfiles/fb1.zip 百试不下,试了下 http://xiaoxia.org/upfiles/fb1.zip 今天爽了
http://home.xxsyzx.com/upfiles/fb1.zip百试不下
,试了下http://xiaoxia.org/upfiles/fb1.zip今天爽了