资源描述:
《Source Insight Marco研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SourceInsightMarco研究(语法篇)SourceInsightMarco研究(语法篇)SourceInsight宏语法与C相似,编写好的宏以.em文件存储。要使用宏先需要把.em文件加入到当前工程或是Base工程中,然后为其分配一个快捷键或是菜单项,之后就可以使用键盘或是点击菜单来调用宏。si的宏语法“不是”大小写敏感的,且每行语句不强制要求以分号结束,语法元素之间的空格将被自动忽略,变量名必须以字母开头。1.宏定义方法如下,可以传递参数,可以有返回值,但和一些脚本语言一样,在si宏中没有数据类型一说。macromy_macro(a,
2、b,c){ ... returnSourceInsightMarco研究(语法篇)SourceInsightMarco研究(语法篇)SourceInsight宏语法与C相似,编写好的宏以.em文件存储。要使用宏先需要把.em文件加入到当前工程或是Base工程中,然后为其分配一个快捷键或是菜单项,之后就可以使用键盘或是点击菜单来调用宏。si的宏语法“不是”大小写敏感的,且每行语句不强制要求以分号结束,语法元素之间的空格将被自动忽略,变量名必须以字母开头。1.宏定义方法如下,可以传递参数,可以有返回值,但和一些脚本语言一样,在si宏中
3、没有数据类型一说。macromy_macro(a,b,c){ ... returna+b+c}2.以下代码展示了si宏的控制语句,学过C语言的人都可以很快上手。while(条件){ if(条件) { ... break } else { continue } return0}3.以下代码展示了变量的定义macroSomeFunction(){ varlocalx //定义局部变量,局部
4、变量可以不定义而直接使用 globalglobalvariables; //定义全局变量 localx=1; //局部变量赋值,作用域是当前macro globalvariables="ison81" //全局变量赋值,作用域是整个si,其它macro也可以访问} 4.以下代码展示了关于变量和数据类型的一些注意事项, a.空串{ S=nil//sissettotheemptystring S="" //sameasnil}b.在变量中展开
5、字符串,使用@...@S=“Hey,@username@,don’tbreakthebuildagain!”c.字符串当成数字来运算s="1"x=s+2 //xnowcontainsthestring"3"y=2*x+5//xnowcontains"11"但这样就是错的,s="hello"x=s+1//error如果要灵活,可以先检测一个字符串是不是数字,if(IsNumber(x)) x=x/4 //okaytodoarithmeticd.引用字符串中的字符,s="abc"x=s[0] //xnowcontainsthest
6、ring"a"si的字符串也是zero-terminated,s="abc"length=strlen(s)ch=s[length]//chnowcontainstheemptystringif(ch=="") msg"Endofstring."5.关于结构体定义Rec=nil //initializesasanemptystringRec.name=“JoeSmith”Rec.age=“34”Rec.experience=“guru”另一种定义方法,rec=“name=”JoeSmith”;age=”34”;experience=
7、”guru””引用结构体Filename=slr.file //getfilefieldofslrLineNumber=slr.lnFirst //getlnFirstfieldofslr6.关于数组si宏并没有提供数组的概念,数组是通过buf来模拟实现的,关于buf还是在介绍macroAPI时再讨论。7.运算符.加减乘除(+,-,*,/).逻辑(&&,
8、
9、,!).自增自减(++,--),可前可后.算术比较(>,<,>=,<=,==,!=).字符串比较(==,!=).字符串连接(#)与引用(@...@)22:02
10、 固定链接
11、 sour
12、ceinsightsourceinsight研究——正则表达式篇sourceinsight研究——正则表达式篇正则表达式主