12五/1030
FakeBasic1.0 程序和源代码
[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

2010年05月12日 23:09
膜拜大牛…不懂Basic…纯围观
2010年05月12日 23:16
前来支持。
2010年05月12日 23:53
前来膜拜
2010年05月13日 01:25
啊~ 不需要懂basic才能玩的,不过懂basic就更觉得好玩~
2010年05月13日 14:10
默默的膜拜
2010年05月13日 18:41
貌似还有点C++的味道
2010年05月13日 18:44
时间仓促,代码可能写的很烂,有不正当的地方请指出!
2010年05月13日 21:25
太厉害了.
2010年05月14日 09:31
经常来看,但是没留过言,呵呵,感觉你太牛了,恩…………
2010年05月14日 12:46
Good job!
2010年05月14日 18:59
VB的Dim
python的print
C++的endl
JAVA的Import
应用尽有。哈哈….
2010年05月14日 20:44
以后不上空间,不上校内,跟你学知识,呵呵!
2010年05月14日 20:50
@Chinasb,我想了一下,果真成了大杂烩了! 哈哈,挺有意思。
@stay,多上一些技术站点,可以学到很多东西的
2010年05月18日 11:28
very nice~
2010年05月18日 13:09
@harite, you are nice too!
2010年06月15日 02:49
觉得不能和你比较,我的博客是www.bigworld.phost.ws
2010年08月17日 01:18
这么强大,弱弱的问一句,你学编译原理拉?
2010年09月01日 22:15
牛掰啊
2010年09月01日 23:45
@geekgao: 还未学。大四的课程吧。我只是略略看了一些网上的文献,觉得写个简单的语法分析器还是挺简单的。
@yoyo:你才牛!
2011年01月02日 18:45
我觉得可以增加调用syscall和shell的功能达到vbs的作用 ~ 这样就有vbs for linux了,再移植一下又跑到windows上,再发展一下就是一个新解释语言了~~
2011年01月02日 21:44
很简单的,我的代码示例里就内置了system命令。
2011年01月07日 22:39
已经把FakeBasic 1.0移植到Linux了,并改名叫QKBAS,想增加一点功能和一个交互式shell当作一个计算器语言,不知道怎么实现basic的input?
2011年01月07日 22:41
对了,能不能嵌入html当作一个计算用的脚本语言?觉得在一些地方用js太大材小用,或许可以写一些库,比如sql之类的,这样可以在一定程度上替代vbs。
最近有点烦,把这个东东当玩具玩一玩,就是觉得代码挺多的。。。
2011年01月08日 02:38
可以弄个函数,调用外部dll的api,这样就能够实现更多的功能了吧!
2011年01月08日 02:40
我也是这么想的,如果全部塞在一个里面太庞大了(而且glibc也能调用了)。
我还想把那个解释器核心直接拆出来放在一个动态库里面去,这样不用直接嵌入代码,调用下库就行了。。
2011年01月07日 23:15
摸索了一会,搞定了
//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
2011年01月08日 02:38
无类型的脚本语言不好吗?我蛮喜欢这样子的!至于那个类型判断和转换器,的确,我很懒!
2011年01月08日 02:36
哇!我也想改进它!!!这个寒假,有计划!
2011年05月01日 18:47
看成f*ckbasic了……
2011年08月13日 07:15
很不错阿