block en cours
This commit is contained in:
@@ -38,21 +38,23 @@ functions returns [ArrayList<Function> out]
|
|||||||
;
|
;
|
||||||
|
|
||||||
function returns [Function out]:
|
function returns [Function out]:
|
||||||
FUNCTION t=type i=ident ParO ParF
|
FUNCTION t=type i=ident ParO ParF instr= instruction
|
||||||
BacO
|
|
||||||
(instrs=list_instr
|
|
||||||
{
|
|
||||||
$out=new FunctionImp($t.return_type, $i.out, $instrs.out);
|
|
||||||
} BacF
|
|
||||||
| instr= instruction
|
|
||||||
{
|
{
|
||||||
$out=new FunctionImp($t.return_type, $i.out, $instr.out);
|
$out=new FunctionImp($t.return_type, $i.out, $instr.out);
|
||||||
}
|
}
|
||||||
)
|
;
|
||||||
|
|
||||||
|
list_decls returns [ArrayList<Declaration> out]
|
||||||
|
@init{
|
||||||
|
$out = new ArrayList<>();
|
||||||
|
}:
|
||||||
|
(declaration {
|
||||||
|
$out.add($declaration.out);
|
||||||
|
})+
|
||||||
;
|
;
|
||||||
|
|
||||||
declaration returns [Declaration out]:
|
declaration returns [Declaration out]:
|
||||||
(t=type i=ident
|
t=type i=ident
|
||||||
{
|
{
|
||||||
ArrayList<String> declare= new ArrayList<String>();
|
ArrayList<String> declare= new ArrayList<String>();
|
||||||
declare.add($i.out);
|
declare.add($i.out);
|
||||||
@@ -60,7 +62,7 @@ declaration returns [Declaration out]:
|
|||||||
{
|
{
|
||||||
declare.add($i2.out);
|
declare.add($i2.out);
|
||||||
})*
|
})*
|
||||||
{$out = new DeclarationImp($t.return_type, declare);})+
|
{$out = new DeclarationImp($t.return_type, declare);}
|
||||||
;
|
;
|
||||||
|
|
||||||
list_instr returns [ArrayList<Instruction> out]
|
list_instr returns [ArrayList<Instruction> out]
|
||||||
@@ -79,12 +81,12 @@ instruction returns [Instruction out]:
|
|||||||
$out =new Return_instrImp($e.out);}
|
$out =new Return_instrImp($e.out);}
|
||||||
| //BLOC
|
| //BLOC
|
||||||
BacO
|
BacO
|
||||||
(dec=declaration instr4=list_instr
|
(dec=list_decls instr4=list_instr
|
||||||
{
|
{
|
||||||
$out=new BlocDec($dec.out,$insts4.out);
|
$out=new BlocDecImp($dec.out,$insts4.out);
|
||||||
}
|
}
|
||||||
| instr3=list_instr
|
| instr3=list_instr
|
||||||
{ $out= new Bloc($instr3.out);
|
{ $out= new BlocImp($instr3.out);
|
||||||
}
|
}
|
||||||
) BacF
|
) BacF
|
||||||
| //ASSIGN
|
| //ASSIGN
|
||||||
|
|||||||
Reference in New Issue
Block a user