码迷,mamicode.com
首页 > 编程语言 > 详细

【纸上谈兵】YY 一个自己的语言(主要是语法啦)

时间:2020-02-05 23:32:56      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:block   表达   想法   实例   开始   就是   函数声明   character   cte   

YY 一个自己的语言(主要是语法啦)。

启发

今天开了个旧程序——PureBasic,看了它的帮助文件,发现文件扩展名那样表示的类型。然后就 YY 了这个。然后在文档的 Structure 的实例字段引用中看到了类似的东西。

开始

nothing.

name FORM

name -- 就是 identifiers

完整格式类似文件路径,我用 / (PureBasic 用 \ )。上下文约束下,可以简略。可以这么简略:

.na/me

.foo/bar

或者这么简略:

./foo/bar

最后我想,这么省略:

nothing.看下面

这么省略:就直接写了,有和 keyword 之类的东西冲突时,再用“当前路径”区别:

./here/name

keyword FORM

直接写就好,有用户标识符冲突了就让用户标识符用“当前路径”的格式表示。

想到这里有了新想法——看下面。

runtime PATH

看:

/runtime/这是/runtime/路径

这是用户标识符的完全路径表达式,/runtime/ 后的部分是用户标识符。

然后,就有了下面的东西——语言路径。

lang PATH

就像是 Java 的 java.lang 包那种感觉的东西。

至于具体是怎么样、要怎么样,没细想。

类型声明

格式:

name.type

PureBasic 是这样的:.b .c .w 等,分别表示 Byte, Character, Word。

于是,问题来了。我的 name 都是路径的格式表示的,如果是:.type 这样的后缀形式表示,写起来不是爆炸?

于是想了想……不是有上下文吗,所以没问题,反正只是表示当前能看的到的符号的别名而已。我想,编译器应该会帮我解决其他的问题……嗯。是这样的。

函数声明

格式:

func name.rtype.ptype1.ptype2...

sub name.ptype1.ptype2...

(func 和 sub 是 keyword。)

end

done.

【纸上谈兵】YY 一个自己的语言(主要是语法啦)

标签:block   表达   想法   实例   开始   就是   函数声明   character   cte   

原文地址:https://www.cnblogs.com/GCxokoA/p/12266929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!