I坐标

博客园 首页 新随笔 联系 订阅 管理
Source File源文件

        Slice定义如下的Slice源文件的命名和内容规则:



文件命名



        Slice的源文件以.ice为扩展名。



        对于大小写不区分的系统(例如DOS),文件的扩展名可以大写,也可以小写,例如Click.ICE是有效的。二对于大小写敏感的系统(如Unix),Clock.ICE是非法的(此时的扩展名应该小写)。



文件格式



        Slice是无格式语言,因此你可以使用空格、横向和纵向制表符、换行符安排你的代码布局。Slice中语义和定义的布局没有关联。



预处理



        Slice支持#ifndef,@define,@endif以及#include与定义指令。不过它们有如下的限制:



  • #ifndef,#define和#endif指令的用途是创建双包含的块。例如:

        #ifndef CLOCKICE



        #define CLOCKICE



        // #include 指令



        //定义



        #endif CLOCKICE



  • #include 指令只能出现在Slice源文件的开始部位。也就是说,#include必须出现在所有Slice定义的前面。此外,#include指令只能使用<>语法来指定一个要包含的文件名称。例如:

        #include <File1.ice>



        Slice不支持用这些预处理指令做其他用途,也不支持使用C++预定义指令。



        #include指令允许Slice似乎用其它文件中的类型定义。Slice编译器会解析源文件中的所有代码,其中包括了#include指令指定的文件中的代码。实际上,编译器只编译编译命令中指定的顶层文件并生成代码,因此你必须单独编译每一个inlcude的文件。



定义顺序



        Slice的结构,例如模块,接口或类型定义可以用任何顺序出现。但是定义必须在使用之前声明。



Lexical Rule词法规则

        Slice的语法规则与C++和Java很相似,除了标示符的差异。



注释



        Slice允许使用C和C++的注释风格:



        /*



        *C 风格注释



        */



         //C++风格



关键字



        Slice使用小写拼写关键字。例如class和dictionary都是关键字。不过有两个例外,Object和LocalObject也都是关键字,但是必须如显示的方式拼写。



标识符



        标识符以一个字母起头,后面可以跟随字符和数字。Slice的标识符被限制在ASCII字符集内并且不支持非英语的字符。



        不同于C++的标识符,Slice的标识符不能有下划线。这个限制看起来似乎很苛刻,但是却是有必要的。保留下划线,就让多语言的映射获取了命名空间,从而不会于合法的Slice标识符产生冲突。



大小写敏感



        标识符是大小写不敏感的,但是必须保持拼写一致。例如TimeOfDay和TIMEOFDAY在同一个命名空间中是一样的。但是,Slice强制拼写一致。一旦你定义了一个标识符之后,你必须自始至终的拼写这个标识符的大小写,否则,编译器会认为这是非法的标识符。这条规则之所以存在,是因为这样就允许Slice可以映射到大小写敏感的语言也能映射到大小写不敏感的语言。



是关键字的标识符



        你可以使用其他语言的关键字来定义Slice标示符,例如,switch可以用来作为Slice标识符,但是也是Java和 C plus plus 的关键字。Slice语言映射中针对每一种语言都定义了映射规则来处理这样的标识符。例如,Slice把switch映射为 C plus plus 的_cpp_stitch和Java的_switch。



转义的标识符



        你可以用过使用\符号来将Slice的关键字转换为标识符。例如



         struct dictionary{ //错误的定义



        }



        struct \dictionary{ //正确的定义



        }



        \符号改变了关键字的含义。在上面的例子中,\dictionary被当作dictionary标识符处理。使用转义的标识符可以允许我们以后加入新的关键字,而不对当前存在的规范造成影响。



保留的标识符



        Slice将Ice以及以Ice开始的所有标识符作为保留的标识符。例如,Icecream将会被认为是非法的标识符。



        同时,Slice还将以以下标识符为后缀的标识符视为保留的标识符:



  • Helper
  • Hodler
  • Prx
  • Ptr

        保留它们,主要是为了防止在生成代码时发生冲突。



posted on 2005-01-14 17:14  I坐标  阅读(1617)  评论(0编辑  收藏  举报