| LLOOP Index | GSP Language | GSP Library | Framework Classes | Component Classes |
This is the verbatim text of the file "minic.gsp" part of the LLOOP package. The copyright remains with Michel MEHL. All rights reserved.
import cplusplus_comment;
import std;
symbol MINI_C
test
{{
"big programme example" : pass file://examples/big.c file://examples/big_expanded.c
}};
MINI_C ::= DeclList 'main' '(' ')' '{' InstructionBlock '}'
{{
}}
| {{}}
BLOC::=
{{
}}
SBLOC::=
{{
}}
InstructionBlock ::= BLOC [ DeclList ] [ InstructionSet ] SBLOC
{{
}}
InstructionSet ::= Instruction [ InstructionSet ]
{{
}}
Instruction ::= 'if' '(' BoolExpr ')' Instruction [ 'else' Instruction ]
{{
}}
| 'while' '(' BoolExpr ')' Instruction
{{
}}
| 'for' '(' Assignment ';' BoolExpr ';' Assignment ')' Instruction
{{
}}
| 'switch' '(' Expr ')' '{' CaseList '}'
{{
}}
| '{' InstructionBlock '}'
{{
}}
| 'break' ';'
{{
}}
| 'return' '(' Expr ')' ';'
{{
}}
| 'read' '(' Expr ')' ';'
{{
}}
| 'write' '(' Expr ')' ';'
{{
}}
| Assignment ';'
{{
}}
| Expr ';'
{{
}}
| 'exit' '(' ')' ';'
{{
}}
FunctCallArgList ::= Expr [ ',' FunctCallArgList ]
{{
}}
Assignment ::= Id '=' Expr
{{
}}
CaseList ::= 'case' '(' CaseValList ')' ':' Instruction [ CaseList ]
{{
}}
CaseValList::= Id [ CaseValList ]
{{
}}
Expr ::= ExprFinal '+' Expr
{{
}}
| ExprFinal '-' Expr
{{
}}
| ExprFinal '*' Expr
{{
}}
| ExprFinal '/' Expr
{{
}}
| ExprFinal
{{
}}
ExprFinal ::= /* '-' Expr
{{
}}
| */ '(' Expr ')'
{{
}}
| Id [ '(' [ FunctCallArgList ] ')' ]
{{
}}
BoolExpr ::= BoolFinal '||' BoolExpr
{{
}}
| BoolFinal '&&' BoolExpr
{{
}}
| BoolFinal
{{
}}
BoolFinal ::= '!' BoolExpr
{{
}}
| '(' BoolExpr ')'
{{
}}
| Expr [ RelOp Expr ]
{{
}}
DeclList ::= VarDecl ';' [ DeclList ]
{{
}}
| FuncHeadDecl '(' FunctAllArgsDecl ')''{' DeclList InstructionSet '}' [ DeclList ]
{{
}}
| StructHeadDecl '{' DeclList '}' ';' [ DeclList ]
{{
}}
| {{}}
VarDecl ::= VarType Id [ VarDecl ]
{{
}}
| ',' Id [ VarDecl ]
{{
}}
| {{}}
FuncHeadDecl ::= VarType Id
{{
}}
StructHeadDecl ::= 'struct' Id
{{
}}
VarType ::= 'int'
{{
}}
| 'void'
{{
}}
| 'double'
{{
}}
| 'char'
{{
}}
| word [ '*' ]
{{
}}
RelOp::= '<='
{{
}}
| '>='
{{
}}
| '=='
{{
}}
| '!='
{{
}}
| '>'
{{
}}
| '<'
{{
}}
Id ::= IdPath
{{
}}
| uint
{{
}}
| int
{{
}}
| double
{{
}}
| quote
{{
}}
/*
| char
{{
}}
*/
IdPath ::= word [ '.' IdPath ]
{{
}}
FunctArgList ::= [ FunctArgDecl [ ',' FunctArgList ] ]
{{
}}
FunctArgDecl ::= VarType Id
{{
}}
FunctAllArgsDecl ::= BLOC FunctArgList
{{
}}
This file is part of the LLOOP Reversible Object-Oriented Parser Generator. Copyright (c) 2005-2006 Michel MEHL, France. All rights reserved. LLOOP is distributed by the company ERSA SaRL.
| Copyright (c) 2005-2006 Michel MEHL, Haguenau, France |
| LLOOP version 1.1 |