| reference |
|
grammar |
| |
In this brief reference of the Yoix grammar,
non-terminals start with an upper case letter and are shown in
italic
type;
all terminals, except for the three undefined symbols
name,
number,
and
string,
are shown in
bold
type exactly as they would appear in a Yoix program.
Statement:
Compound
Declaration ;
Expression ;
FunctionDefinition
NamedBlock
Permissions ;
break ;
case UnaryExpression :
continue ;
default :
do Statement while ( Expression ) ;
exit ExpressionOPT ;
finally Compound
for ( ExpressionOPT ; ExpressionOPT ; ExpressionOPT ) Statement
if ( Expression ) Statement
if ( Expression ) Statement else Statement
import Lvalue ;
import Lvalue .* ;
include string ;
return ExpressionOPT ;
save Lvalue ;
save Lvalue = Expression ;
switch ( Expression ) Compound
synchronized ( Expression ) Statement
try Compound catch ( name ) Compound
typedef name ( ParameterList ) Compound
while ( Expression ) Statement
;
StatementList:
Statement
StatementList Statement
Compound:
{ }
{ StatementList }
NamedBlock:
Lvalue { }
Lvalue { StatementList }
Expression:
UnaryExpression
UnaryExpression * UnaryExpression
UnaryExpression / UnaryExpression
UnaryExpression % UnaryExpression
UnaryExpression + UnaryExpression
UnaryExpression - UnaryExpression
UnaryExpression << UnaryExpression
UnaryExpression >> UnaryExpression
UnaryExpression < UnaryExpression
UnaryExpression <= UnaryExpression
UnaryExpression > UnaryExpression
UnaryExpression >= UnaryExpression
UnaryExpression instanceof name
UnaryExpression == UnaryExpression
UnaryExpression != UnaryExpression
UnaryExpression === UnaryExpression
UnaryExpression !== UnaryExpression
UnaryExpression =~ UnaryExpression
UnaryExpression !~ UnaryExpression
UnaryExpression & UnaryExpression
UnaryExpression ^ UnaryExpression
UnaryExpression | UnaryExpression
UnaryExpression && UnaryExpression
UnaryExpression ^^ UnaryExpression
UnaryExpression || UnaryExpression
UnaryExpression ? UnaryExpression
UnaryExpression : UnaryExpression
UnaryExpression = UnaryExpression
UnaryExpression *= UnaryExpression
UnaryExpression /= UnaryExpression
UnaryExpression %= UnaryExpression
UnaryExpression += UnaryExpression
UnaryExpression -= UnaryExpression
UnaryExpression <<= UnaryExpression
UnaryExpression >>= UnaryExpression
UnaryExpression &= UnaryExpression
UnaryExpression ^= UnaryExpression
UnaryExpression |= UnaryExpression
UnaryExpression , UnaryExpression
ExpressionList:
Expression
ExpressionList , Expression
UnaryExpression:
( Expression )
Attribute
FunctionCall
Lvalue
Lvalue ++
Lvalue --
++ Lvalue
-- Lvalue
+ UnaryExpression
- UnaryExpression
! UnaryExpression
~ UnaryExpression
new Dvalue InitializerOPT
number
string
Attribute:
Lvalue @ access
Lvalue @ length
Lvalue @ major
Lvalue @ minor
Lvalue @ nameof
Lvalue @ offset
Lvalue @ sizeof
Lvalue @ typename
Lvalue:
Lvalue . name
Lvalue [ Expression ]
& Lvalue
* Lvalue
* Pointer
global
name
this
Pointer:
FunctionCall
Lvalue ++
Lvalue --
++ Lvalue
-- Lvalue
( Expression )
Declaration:
QualifierOPT name DeclaratorList
Declarator:
Dvalue
Dvalue = Initializer
DeclaratorList:
Declarator
DeclaratorList , Declarator
Dvalue:
name
name [ Expression ]
name [ Expression , Expression ]
name [ Expression , ... ]
Initializer:
Compound
Expression
{ ExpressionList }
Qualifier:
const
final
FunctionCall:
Lvalue ( )
Lvalue ( ExpressionList )
FunctionDefinition:
name ( ) Compound
name ( ) = Expression
name ( ParameterList ) Compound
name ( ParameterList ) = Expression
name ( ParameterList , ... ) Compound
name ( ParameterList , ... ) = Expression
ParameterList:
name
ParameterList , name
Permissions:
Qualifier Lvalue
Qualifier Lvalue = Expression
|
Yoix is a registered trademark of AT&T Inc.
|