📄 chill.texi
字号:
@end example@item 3.6 Reference Modes@*Row modes are not implemeted at all.@item 3.7 Procedure Mode@*The syntax for procedure modes is changed to:@example@i{<procedure mode> ::=}@example @b{PROC} @i{([<parameter list>]) [ <result spec> ]} @i{[}@b{EXCEPTIONS}@i{(<exception list>)] [}@b{RECURSIVE}@i{]}| @i{<procedure mode name>}@end example@i{<parameter list> ::=}@example@i{<parameter spec> @{, <parameter spec> @} *}@end example@i{<parameter spec> ::=}@example@i{<mode> [ <parameter attribute> ]}@end example@i{<parameter attribute> ::=}@example@b{IN} | @b{OUT} | @b{INOUT} | @b{LOC}@end example@i{<result spec> ::=}@example@b{RETURNS} @i{( <mode> [}@b{LOC}@i{])}@end example@i{<exception list> ::=}@example@i{<exception name> @{, <exception name> @} *}@end example@end example@item 3.10 Input-Output Modes@*Due to the absence of row modes, DYNAMIC has no meaning in an accessor text mode definition.@item 3.12.2 String Modes@*As @i{<string modes>} were defined differently in Z.200/1984, the syntaxof @i{<string mode>} is changed to:@example@i{<string mode> ::=}@example @i{<string type> ( <string length> ) [} @b{VARYING} @i{]}| @i{<parametrized string mode>}| @i{<string mode name>}@end example@i{<parameterized string mode> ::=}@example @i{<origin string mode name> ( <string length> )}| @i{<parameterized string mode name>}@end example@i{<origin string mode name> ::=}@example@i{<string mode name>}@end example@i{string type}@example @b{BOOLS}| @b{BIT}| @b{CHARS}| @b{CHAR}@end example@i{<string length> ::=}@example@i{<integer literal expression>}@end example@end example@b{VARYING} is not implemented for @i{<string type>} @b{BIT}and @b{BOOL}.@item 3.11.1 Duration Modes@*The predefined mode @i{DURATION} is implemented as a NEWMODE ULONG andholds the duration value in miliseconds. This gives a maximum durationof@exampleMILLISECS (UPPER (ULONG)),SECS (4294967),MINUTES (71582),HOURS (1193), andDAYS (49).@end example@item 3.11.2 Absolute Time Modes@*The predefined mode @i{TIME} is implemented as a NEWMODE ULONG andholds the absolute time in seconds since Jan. 1st, 1970. This isequivalent to the mode `time_t' defined on different systems.@item 3.12.4 Structure Modes@*Variant fields are allowed, but the CASE-construct may define only onetag field (one dimensional CASE). OF course, several variant fields maybe specified in one STRUCT mode. The tag field will (both at compile-and runtime) not be interpreted in any way, however, it must beinterpreted by a debugger. As a consequence, there are no parameterized STRUCT modes.@item 3.12.5 Layout description for array and structure modes@*STEP and POS is not implemeted at all, therefore the syntax of@i{<element layout} and @i{field layout} is changed to:@example@i{<element layout> ::=}@example@b{PACK} | @b{NOPACK}@end example@i{<field layout> ::=}@example@b{PACK} | @b{NOPACK}@end example@end example@item 3.13.4 Dynamic parameterised structure modes@*Dynamic parameterised structure modes are not implemented.@item 4.1.2 Location declaration@*The keyword STATIC is allowed, but has no effect at module level, becauseall locations declared there are assumed to be `static' by default. Eachgranted location will become `public'. A `static' declaration inside ablock, procedure, etc. places the variable in the data section instead ofthe stack section.@item 4.1.4 Based decleration@*The based declaration was taken from Z.200/1984 and has the followingsyntax:@b{syntax:}@example@i{<based declaration> ::=}@example@i{<defining occerrence list> <mode>} @b{BASED}@i{( <free reference location name> )}@end example@end example@b{semantics:}A based declaration with @i{<free reference location name>} specifiesas many access names as are defining occerrences in the @i{definingoccurrence list}. Names declared in a base declaration serve as analternative way accessing a location by dereferencing a reference value. This reference value is contained in the location specified by the @i{free reference location name}. This dereferencing operation is made each time and only when an access is made via a declared @b{based} name.@b{static properties:}A defining occurrence in a @i{based declaration} with @i{free referencelocation name} defines a @b{based} name. The mode attached to a@b{based} name is the @i{mode} specified in the @i{based declaration}. A@b{based} name is @b{referable}.@item 4.2.2 Access names@*The syntax of access names is changed to:@example@i{<access name> ::=}@example @i{<location name>}| @i{<loc-identity name>}| @i{<based name>}| @i{<location enumeration name>}| @i{<location do-with name>}@end example@end exampleThe semantics, static properties and dynamic conditions remainunchanged except that they are enhanced by @i{base name}.@item 5.2.4.1 Literals General@*The syntax of @i{<literal>} is change to:@example@i{<literal> ::=}@example @i{<integer literal>}| @i{<boolean literal>}| @i{<charater literal>}| @i{<set literal>}| @i{<emptiness literal>}| @i{<character string literal>}| @i{<bit string literal>}| @i{<floating point literal>}@end example@end exampleNote: The @i{<floating point literal>} is an extension to Z.200/1988 andwill be described later on.@item 5.2.4.2 Integer literals@*The @i{<decimal integer literal>} is changed to:@example@i{<decimal integer literal> ::=}@example @i{@{ D | d @} ' @{ <digit> | _ @} +}| @i{<digit> @{ <digit> | _ @} *}@end example@end example@item 5.2.4.4 Character literals@*A character literal, e.g. 'M', may serve as a charater string literal oflength 1.@item 5.2.4.7 Character string literals@*The syntax of a character string literal is:@example@i{<character string literal> ::=}@example @i{'@{ <non-reserved character> | <single quote> |} @i{<control sequence> @} * '}| @i{'@{ <non-reserved character> | <double quote> |} @i{<control sequence> @} * '}@end example@i{<single quote> ::=}@example@i{''}@end example@i{<double quote> ::=}@example@i{""}@end example@end exampleA character string litaral of length 1, enclosed in apostrophes(e.g. 'M') may also serve as a charater literal.@item 5.2.4.9 Floating point literal@*Note: This is an extension to Z.200/1988 ans was taken from Z.200/1992.@b{syntax:}@example@i{<floating point literal> ::=}@example @i{<unsigned floating point literal>}| @i{<signed floating point literal>}@end example@i{<unsigned floating point literal> ::=}@example @i{<digit sequence> . [ <digit sequence> ] [ <exponent> ]}| @i{[ <digit sequence> ] . <digit sequence> [ <exponent> ]}@end example@i{<signed floating point literal> ::=}@example@i{- <unsigned floating point literal>}@end example@i{<digit sequence> ::=}@example@i{<digit> @{ <digit> | _ @} *}@end example@i{<exponent> ::=}@example @i{[ E | D | e | d ] <digit sequence>}| @i{[ E | D | e | d ] - <digit sequence>}@end example@end example@item 5.2.14 Start Expression@*The START expression is not implemented.@item 5.3 Values and Expressions@*The undefined value, denoted by `*', is not implemented.@item 5.3.8 Operand-5@*The @i{<string repetition operator>} is defined as:@example@i{<string repetition operator> ::=}@example@i{(<integer expression>)}@end example@end example@item 6.4 Case Action@*There may be only one case selector specified. The optional range listmust not be specified.@item 6.5 Do Action@*A Do-Action without control part is not implemented. Grouping ofstatements can be achieved via BEGIN and END. A location enumeration is notallowed for BIT strings, only for (varying) CHAR strings and ARRAYs.The expression list in a DO WITH must consist of locations only.@item 6.13 Start Action@*The syntax of the START action is changed to:@example@i{<start action> ::=}@example@b{START} @i{<process name> (<copy number> [, <actual parameter list>])}@i{[} @b{SET} @i{<instance location> ]}@end example@i{<copy number> ::=}@example@i{<integer expression>}@end example@end example@item 6.16 Delay Action@*The optional PRIORITY specification need not be a constant.@item 6.17 Delay Case Action@*The optional SET branch and the, also optional, PRIORITY branch must beseperated by `;'.@item 6.18 Send Action@*The send action must define a destination instance (via the TO branch),since undirected signals are not supported. The optional PRIORITYspecification need not be a constant. Additional to the datatransported by the signal, there will be a user defined argument.The syntax of the @i{<send signal action>} is therefore:@example@i{<send signal action> ::=}@example@b{SEND} @i{<signal name> [ ( <value> @{, <value> @} * ) ]}@i{[} @b{WITH} @i{<expression> ]}@b{TO} @i{<instance primitive value> [ <priority> ]}@end example@end exampleThe default priority can be specified by the compiler directiveSEND_SIGNAL_DEFAULT_PRIORITY. If this also is omitted, the defaultpriority is 0.@item 6.20.3 CHILL value built-in calls@*The CHILL value buit-in calls are enhanced by some calls, and other callswill have different arguments as described in Z.200/1988. Any call notmentioned here is the same as described in Z.200/1988.@b{syntax:}@example@i{CHILL value built-in routine call> ::=}@example @i{ADDR (<location>)}| @i{PRED (<pred succ argument>)}| @i{SUCC (<pred succ argument>)}| @i{ABS (<numeric expression>)}| @i{LENGTH (<length argument>)}| @i{SIN (<floating point expression>)}| @i{COS (<floating point expression>)}| @i{TAN (<floating point expression>)}| @i{ARCSIN (<floating point expression>)}| @i{ARCCOS (<floating point expression>)}| @i{ARCTAN (<floating point expression>)}| @i{EXP (<floating point expression>)}| @i{LN (<floating point expression>)}| @i{LOG (<floating point expression>)}| @i{SQRT (<floating point expression>)}| @i{QUEUE_LENGTH (<buffer location> | <event location>)}| @i{GEN_INST (<integer expression> | <process name> ,} @i{<integer expression>)}| @i{COPY_NUMBER (<instance expression>)}| @i{GEN_PTYE (<process name>)}| @i{PROC_TYPE (<instance expression>)}| @i{GEN_CODE (<process name> | <signal name>)}| @i{DESCR (<location>)}@end example@i{<pred succ argument> ::=}@example @i{<discrete expression>}| @i{<bound reference expression>}@end example@i{<numeric expression> ::=}@example @i{<integer expression>}| @i{floating point expression>}@end example@i{<length argument> ::=}@example @i{<string location>}| @i{<string expression>}| @i{<string mode name>}| @i{<event location>}| @i{<event mode name>}| @i{<buffer location>}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -