Scade——学习笔记
来源:互联网 发布:斗牛神器软件下载 编辑:程序博客网 时间:2024/06/14 02:51
词汇元素也叫词位被用于描述语言结构的句法
正则表达式符号:
符号 含义
抽象句法符号:
符号 含义
词位
SCADE能用几种符号去描述值。整形能被写为二进制、八进制、十六进制值和与一些表达式混合使用。它被当做前缀或者无类型。
非十进制整形字符被当做无符(通常被当做负数)。浮点型用十进制或者科学计数符号表示。字符被描述为标准的ASCII码。
符号列表
<> <= >= << >> = < > () [] {} -> :: .. ; , . : ^ @ # _ | + - * /
$符号被作为操作的名字。
字首操作符
关键字列表
注意关键词:onreset,abstract,parameter被保留但未被使用
注释:
单行注释开始用“--”
多行注释开始“\*”,结束“*\”
程序
程序和包
七中顶级申明:
例子:
申明一个合格的路径:
算法解析:打开指令将包括Q::R包进行申明而不是P::R包,由于这是第一次出现的R中的封装结构选自B开始
安装包中的申明不是相对的:
错误源于打开多次申明:识别码foo被用作常量和类型名为foo的发生冲突通过打开指令。
一个打开的包中的子包不能使用open指令。P2包中的第二个申明在这个程序是有效的,因为P1中的P2不可见:
正在打开的包是不可及:申明的P1包下被打开的P2包是不被考虑的,当打开后者。常量foo不被识别在foobar的定义中,出现一个错误:
正则表达式符号:
符号 含义
ID=re 在正则表达式中ID被定义为re| 替代re? 出现re的次数为0或者1次re* 出现re的次数为0或者更多次re+ 至少出现一次(re) 分组[chars] 匹配chars中含有的任何字符[x-y] 字符串集范围从x到y
抽象句法符号:
符号 含义
::= 被定义为| 替换[[X]] X至多出现一次{{X}} X出现0次或多次{{X}}+ X至少出现一次((X|Y)) 分为X组或者Y组abc 关键词终端符号abcINTEGER 终端符号以外的关键词xyz 非终端符号^:a:int32^n: 定义一个整形长度为n的数组a
词位
SCADE能用几种符号去描述值。整形能被写为二进制、八进制、十六进制值和与一些表达式混合使用。它被当做前缀或者无类型。
非十进制整形字符被当做无符(通常被当做负数)。浮点型用十进制或者科学计数符号表示。字符被描述为标准的ASCII码。
DIGIT2 =[0-1]DIGIT8 =[0-7]DIGIT10 =[0-9]DIGIT16 =[a-f][A-F][0-9]INTEGER2 =0b DIGIT2+ #二进制INTEGER8 =0 DIGIT8+ #八进制INTEGER10 =0 | ([1-9]DIGIT10*) #十进制INTEGER16 =0x DIGIT16+#十六进制INTEGER =INTEGER2|INTEGER8|INTEGER10|INTEGER16TYPED_INTEGER= INTEGER(_i|_ui)(8|16|32|64)#定义整形的长度和类型EXPONENT =[eE][+-]? DIGIT10+;#科学计数法FLOAT =DIGIT10+.DIGIT10*EXPONENT?|DIGIT10*.DIGIT10+EXPONENT?#浮点类型TYPED_FLOAT=FLOAT(_f32|_f64)#定义浮点类型的字节长度LETTER =_|[a-z]|[A-Z]#字母ALPHANUMERIC=DIGIT10|LETTER#字母数字组合WORD =LETTER ALPHANUMERIC* #单词是字符与字母与数字组合CHARACTER=ALPHNUMERIC|SPACE|[!"$#&'()*+,-./:;<=>?@[]\^`|{}~]# 字符CHAR='CHARACTER'|'\x DIGIT16 DIGIT16';ID=WORD;NAME='WORD;
符号列表
<> <= >= << >> = < > () [] {} -> :: .. ; , . : ^ @ # _ | + - * /
$符号被作为操作的名字。
字首操作符
PREFIXOP ::=$+$|$-$|$*$|$/$|$mod$|$=$|$+$|$<>$|$<$|$>$|$<=$|$>=$|$@$|$times$|$and$|$or$|$xor$|$land$|$lor$|$lxor$| $lsl$|$lsr$|+$|-$|not$|$or$|lnot$|reverse$
关键字列表
abstract,actived,and,assume,automation,bool,case,char,clock,const,default,do,else,elseif,emit,end,enum,every,flase,fby,final,flatten,float,float32,float64,fold,foldi,foldw,foldwi,function,guarantee,group,if,imported,initial,int8,int16,int32,int64,integer,is,land,lnot,lor,lsl,lsr,last,let,make,map,mapfold,mapfoldi,mapfoldw,mapfoldwi,mapi,mapw;mapwi,match,merge,mod,node,not,numeric,of,onreset,open,or,package,parameter,pre,private,probe,public,restart,resume,returns,reverse,sensor,sig,signed,specialize,state,synchro,tel,them,times,transpose,true,type,uint8,uint16,uint32,uint64,unless,unsigned,until,var,when,where,with,xor
注意关键词:onreset,abstract,parameter被保留但未被使用
注释:
单行注释开始用“--”
多行注释开始“\*”,结束“*\”
程序
pragma ::=#progma CHARACTER*#end|#ALPHANUMERIC+
程序和包
path ::=ID{{::ID}}path_id ::=[[path ::]]IDpackage_decl ::=package[[visibility]] ID {{decls}} end;
七中顶级申明:
decls ::=open path; package_decl group_block type_block const_block sensor_block usr_op_decl一个包不能被打开多次,即使是不同的路径。一个包不能打开本身。
例子:
申明一个合格的路径:
package P1 const foo :int16 =3;end;package P2 const bar : int16=4;end;const foobar : int16=P1::foo+P2::bar;
算法解析:打开指令将包括Q::R包进行申明而不是P::R包,由于这是第一次出现的R中的封装结构选自B开始
package P package R ... end;end;package Q package R ... end; package S open R ... end;end;
安装包中的申明不是相对的:
package P1 open P1; const iC1: T1 =2; package P1 type T1=int32;end;end;
错误源于打开多次申明:识别码foo被用作常量和类型名为foo的发生冲突通过打开指令。
package P1 type foo =int16;endopen P1;const foo:bool =true;
一个打开的包中的子包不能使用open指令。P2包中的第二个申明在这个程序是有效的,因为P1中的P2不可见:
package P1 package P2 ... end;end;open P1;package P2 ...end;
正在打开的包是不可及:申明的P1包下被打开的P2包是不被考虑的,当打开后者。常量foo不被识别在foobar的定义中,出现一个错误:
package P1 package P2 const foo:int32 =0; end; open P2; const bar:int32=foo+1;end;open P1;const foobar:int32=foo*2;
0 0
- Scade——学习笔记
- Scade——学习笔记(2)
- Scade——学习笔记(4)
- SCADE介绍—模型检测在航空领域的应用
- Scade Suite开发 ARINC 661 (2)Scade Suite基本操作
- 机器学习—学习笔记
- Scade Suite 开发Arinc 661(1)ARINC661
- java学习笔记—
- freemarker学习笔记《—》
- 【git】—学习笔记
- 学习笔记—递归
- 【笔记】Python学习笔记 ——1
- shell学习笔记——sed学习
- C++学习笔记——static学习
- 机器学习笔记——决策树学习
- 机器学习笔记——贝叶斯学习
- C++学习笔记——virtual学习
- android学习笔记——ExpandableListView学习
- 畅通工程(HDUOJ_1232)
- android使用webview时按后退退出的问题
- Ocaml学习笔记
- refresh的停车场 SDUT
- sap模板
- Scade——学习笔记
- The Suspects(POJ_1611)
- iLBC简要介绍
- Android jar包Proguard混淆方法
- 邮票分你一半
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- box layout DEMO
- 【POJ 3020】Antenna Placement
- C#中List(Of T)类