Appendices > Grammar of Dynamic View Type Specifications
 
Grammar of Dynamic View Type Specifications
In this appendix, you will find the grammar of dynamic view type specifications.
view-specification:view-header subscribe-listopt
 
view-header:view identifier view-typeopt paramsopt :
representationopt
 
view-type:is id
 
params:(param-listopt)
 
param-list:param
param , param-list
 
param:type-id id = expression
 
subscribe-list:subscribe-spec
subscribe-list subscribe_spec
 
subscribe_spec:subscribe originopt id conditionopt : action-listopt
 
condition:when expression
 
action-list:action-spec
action-list action-spec
 
action-spec:representation:
propagation
representation : represent identifier identifier
conditionopt : attr-listopt
propagation: propagate identifier conditionopt ;
 
attr-list:attr-spec
attr-list attr-spec
 
attr-spec: attr-type-id simple-path = expression
HyperRef simple-path = hyper-ref-expr
Collector simple-path = collector-expr ;
 
attr-type-id:type-id
mandatory opt Ref < identifier >
 
type-id:boolean
char
int
float
double
string
file
id
 
hyper-ref-expr:
{ path-spec -> identifier , expression }
{ identifier , expression }
collector-expr:path-spec -> identifier
 
path : simple-path
simple-path . path
 
simple-path: id
id [ integer-literal ]
 
representation-path:
path -> id
-> id
 
expression:( expression )
conditional-expression
logical-expression
relational-expression
arithmetic-expression
representation path
path
function-call-expression
literal
 
conditional-expression:expression ? expression : expression
 
logical-expression:expression && expression
expression || expression
! expression
expression in ( enumeration )
relational-expression:expression < expression
expression <= expression
expression == expression
expression >= expression
expression > expression
 
arithmetic-expression : expression + expression
expression - expression
expression * expression
expression / expression
 
function-call-expression : id ( expression-listopt )
 
id:[_a-zA-Z0-9]+
enumeration : literal-list
 
literal:boolean-literal
character-literal
integer-literal
float-literal
string-literal
 
boolean-literal:true
false
 
character-literal: [a-zA-Z0-9!@#$%^&*()_-+={}[]|\<>?,./‘:;”~]
integer-literal: signopt[0-9][0-9]*
float-literal: signopt[0-9][0-9]*.[0-9]* exponentopt
sign: +
|-
 
exponent: [Ee] signopt[0-9][0-9]*
 
string-literal: character-literal*

Version 6.3
Copyright © 2018, Rogue Wave Software, Inc. All Rights Reserved.