Liquidity GrammarΒΆ
Toplevel:
[%%versionFLOAT]- Structure*
Contract:
structStructure*end- UIDENT
Module:
structModStructure*end- UIDENT
ModStructure:
typeLIDENT=TypetypeLIDENT= {[ LIDENT:Type;]+}typeLIDENT=[|UIDENTofType ]+moduleUIDENT=ModulecontractUIDENT=Contractcontract typeUIDENT= sigSignature*endletrec? Annot* Pattern=Expression
Structure:
- ModStructure
let%init storage =Expressionlet%entryLIDENT Pattern Pattern =`` Expressionlet%viewLIDENT Pattern Pattern =`` Expression
Signature:
typeLIDENT=TypetypeLIDENTval%entryLIDENT:Typeval%viewLIDENT:Type->Type
Annot:
[@inline][@private]
Expression:
- LIDENT
- UIDENT
.LIDENT - [LIDENT
.]+ LIDENT - [LIDENT
.]+ LIDENT<-Expression (Expression:Type)ifExpressionthenExpressionifExpressionthenExpressionelseExpressionContract.createExpression Expression Expression Expression Expression Expression(contractContract)letrec? Annot* Pattern=ExpressioninExpression- Expression
;Expression Loop.loop (funPattern->Expression)ExpressionLoop.left (funPattern->Expression)Expression- Expression Expression
match%natExpressionwith | PlusLIDENT->Expression| MinusLIDENT->ExpressionmatchExpressionwith | LeftLIDENT->Expression| RightLIDENT->ExpressionmatchExpressionwith | [] ->Expression|LIDENT::LIDENT->ExpressionmatchExpressionwith[|MatchPattern->Expression ]*LeftExpressionRightExpressionSomeExpression- Expression
::Expression - Constant
Pattern:
- LIDENT
(LIDENT:Type)_(Pattern [,Pattern]*)
MatchPattern:
- UIDENT
- UIDENT Pattern
Type:
unitboolintnatdunstringbytestimestampkeykey_hashsignatureoperationaddresschain_id- Type
option - Type
list - Type
set (Type,Type) variant(Type,Type) map(Type,Type) big_map- Type [
*Type]+ - Type
->Type _- LIDENT
Constant:
dn1B58Char+(33)dn2B58Char+(33)dn3B58Char+(33)edpkB58Char+(50)sppkB58Char+(50)p2pkB58Char+(50)edsigB58Char+(94)p2sigB58Char+(93)spsig1B58Char+(93)KT1B58Char+(33)0x[HexChar HexChar]*truefalse- DIGIT [DIGIT |
_]* - DIGIT [DIGIT |
_]*p - DIGIT [DIGIT |
_]* [.[DIGIT |_]*]?DUN - DAY [
THOUR [ TIMEZONE ]?]? "CHAR*"()[Constant+`;`]Map|Map[Constant+``;``]Set|Set[Constant+``;``]BigMap|BigMap[Constant+``;``]funPattern->Expression
B58Char:
- [
1-9|A-H|J-N|P-Z|a-k|m-z]
HexChar:
- [
0-9|A-F|a-f]
LIDENT:
- [
a-z|_] [A-Z|a-z|_|'|0-9]*
UIDENT:
- [
A-Z] [A-Z|a-z|_|'|0-9]*
DIGIT:
- [
0-9]
DAY:
- DIGIT+(4)
-DIGIT+(2)-DIGIT+(2)
HOUR:
- DIGIT+(2)
:DIGIT+(2) [:DIGIT+(2)]?
TIMEZONE:
+DIGIT+(2):DIGIT+(2)Z