merge
This commit is contained in:
parent
144b0bdc75
commit
17d2b0d370
1 changed files with 9 additions and 2 deletions
|
@ -71,6 +71,7 @@ definition:
|
||||||
DefineType (tc, tvl, td)
|
DefineType (tc, tvl, td)
|
||||||
}
|
}
|
||||||
// La tdefinition peut être optionnel, dans ce cas on utilise c'est abstrait
|
// La tdefinition peut être optionnel, dans ce cas on utilise c'est abstrait
|
||||||
|
|
||||||
| TYPE tc=located(type_constructor) tvl=optionlist(definition_typevariablelist) {
|
| TYPE tc=located(type_constructor) tvl=optionlist(definition_typevariablelist) {
|
||||||
DefineType (tc, tvl, Abstract)
|
DefineType (tc, tvl, Abstract)
|
||||||
}
|
}
|
||||||
|
@ -238,6 +239,11 @@ simple_ty:
|
||||||
INFERIOR liste_ty=separated_nonempty_list(COMMA, located(ty)) SUPERIOR {
|
INFERIOR liste_ty=separated_nonempty_list(COMMA, located(ty)) SUPERIOR {
|
||||||
TyCon(tc, liste_ty)
|
TyCon(tc, liste_ty)
|
||||||
}
|
}
|
||||||
|
| tc=type_constructor
|
||||||
|
INFERIOR SUPERIOR {
|
||||||
|
TyCon(tc, [])
|
||||||
|
}
|
||||||
|
|
||||||
/* Variables de type */
|
/* Variables de type */
|
||||||
| type_var=type_variable {
|
| type_var=type_variable {
|
||||||
TyVar(type_var)
|
TyVar(type_var)
|
||||||
|
@ -266,11 +272,11 @@ ty:
|
||||||
|
|
||||||
type_scheme:
|
type_scheme:
|
||||||
/* Il faut peut être modifié le séparateur */
|
/* Il faut peut être modifié le séparateur */
|
||||||
| LBRACK liste_typevar=separated_list(COMMA, located(type_variable))
|
| COLON LBRACK liste_typevar=separated_list(COMMA, located(type_variable))
|
||||||
RBRACK ty=located(ty) {
|
RBRACK ty=located(ty) {
|
||||||
ForallTy(liste_typevar, ty)
|
ForallTy(liste_typevar, ty)
|
||||||
}
|
}
|
||||||
| ty=located(ty) {
|
| COLON ty=located(ty) {
|
||||||
ForallTy([], ty)
|
ForallTy([], ty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,6 +360,7 @@ expression:
|
||||||
| e1=located(expression) e2=located(expression) {
|
| e1=located(expression) e2=located(expression) {
|
||||||
Apply(e1, e2)
|
Apply(e1, e2)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Operateurs binaires - Application infixe */
|
/* Operateurs binaires - Application infixe */
|
||||||
| e1=located(expression) b=binop e2=located(expression) {
|
| e1=located(expression) b=binop e2=located(expression) {
|
||||||
Apply(
|
Apply(
|
||||||
|
|
Reference in a new issue