Publish quixos-protocol from 3ea7dcc6a38ba0c5ddc099b966d48c5aeae732b1
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git",
|
||||
"sourceCommit": "4af89fa7c703d9fecf36b4e97b76658a503dd5aa",
|
||||
"sourceCommit": "3ea7dcc6a38ba0c5ddc099b966d48c5aeae732b1",
|
||||
"sourcePath": "quixos-protocol",
|
||||
"exportName": "quixos-protocol",
|
||||
"mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git"
|
||||
|
||||
@@ -180,6 +180,11 @@ conformanceDecl
|
||||
conformanceItem
|
||||
: PRIVATE attachmentDecl
|
||||
| operationBindingDecl
|
||||
| relationshipMaterializationDecl
|
||||
;
|
||||
|
||||
relationshipMaterializationDecl
|
||||
: MATERIALIZE identifier IF ABSENT USING CONSTRUCTOR identifier VIA EDGE identifier DOT identifier SEMI
|
||||
;
|
||||
|
||||
operationBindingDecl
|
||||
@@ -230,8 +235,8 @@ dependencyBindingBlock
|
||||
;
|
||||
|
||||
dependencyBinding
|
||||
: identifier TO STATE identifier SEMI
|
||||
| identifier TO EDGE identifier DOT identifier SEMI
|
||||
: identifier TO STATE identifier (VIA EDGE identifier DOT identifier)? SEMI
|
||||
| identifier TO EDGE identifier DOT identifier (VIA EDGE identifier DOT identifier)? SEMI
|
||||
| identifier TO INTERFACE identifier SEMI
|
||||
| identifier TO CONSTRUCTOR identifier SEMI
|
||||
;
|
||||
@@ -322,6 +327,11 @@ STATE: 'state';
|
||||
EDGE: 'edge';
|
||||
PROJECTION: 'projection';
|
||||
WITH: 'with';
|
||||
USING: 'using';
|
||||
VIA: 'via';
|
||||
MATERIALIZE: 'materialize';
|
||||
IF: 'if';
|
||||
ABSENT: 'absent';
|
||||
ON: 'on';
|
||||
POLICY: 'policy';
|
||||
DEFAULT: 'default';
|
||||
|
||||
@@ -11,6 +11,7 @@ service OrchestratorRuntime {
|
||||
rpc InvokeCapability(InvokeCapabilityRequest) returns (InvokeCapabilityResponse);
|
||||
rpc WatchCapability(WatchCapabilityRequest) returns (stream WatchCapabilityEvent);
|
||||
rpc ConstructObject(ConstructObjectRequest) returns (ConstructObjectResponse);
|
||||
rpc ResolveOrConstructRelatedObject(ResolveOrConstructRelatedObjectRequest) returns (ResolveOrConstructRelatedObjectResponse);
|
||||
rpc GetWorkspace(GetWorkspaceRequest) returns (GetWorkspaceResponse);
|
||||
rpc ListPackageDescriptors(ListPackageDescriptorsRequest) returns (ListPackageDescriptorsResponse);
|
||||
rpc ListPackageRuntimes(ListPackageRuntimesRequest) returns (ListPackageRuntimesResponse);
|
||||
@@ -24,6 +25,16 @@ message ConstructObjectRequest {
|
||||
}
|
||||
message ConstructObjectResponse { camino.CaminoObject object = 1; }
|
||||
|
||||
message ResolveOrConstructRelatedObjectRequest {
|
||||
string object_id = 1;
|
||||
string interface_revision_id = 2;
|
||||
string member_id = 3;
|
||||
}
|
||||
message ResolveOrConstructRelatedObjectResponse {
|
||||
camino.CaminoObject object = 1;
|
||||
bool constructed = 2;
|
||||
}
|
||||
|
||||
message InvokeCapabilityRequest {
|
||||
quixos.CapabilityRef capability = 1;
|
||||
string object_id = 2;
|
||||
|
||||
@@ -20,6 +20,9 @@ message InjectedDependency {
|
||||
string receiver_interface_revision_id = 4;
|
||||
string constructor_atom_id = 5;
|
||||
}
|
||||
// Defaults to the invocation receiver. A checked dependency traversal can
|
||||
// select a related object explicitly before the package runtime starts.
|
||||
string object_id = 6;
|
||||
}
|
||||
|
||||
message EdgeDependency {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,80 +19,85 @@ STATE=18
|
||||
EDGE=19
|
||||
PROJECTION=20
|
||||
WITH=21
|
||||
ON=22
|
||||
POLICY=23
|
||||
DEFAULT=24
|
||||
SOURCE=25
|
||||
REPOSITORY=26
|
||||
COMMIT=27
|
||||
REVISION=28
|
||||
ID=29
|
||||
DOC=30
|
||||
MODE=31
|
||||
EMITS=32
|
||||
RECEIVER=33
|
||||
REQUIRES=34
|
||||
ANY=35
|
||||
GET=36
|
||||
SET=37
|
||||
WATCH=38
|
||||
START=39
|
||||
STOP=40
|
||||
READ=41
|
||||
WRITE=42
|
||||
RESOLVE=43
|
||||
CONNECT=44
|
||||
DISCONNECT=45
|
||||
CALL=46
|
||||
WATCH_START=47
|
||||
WATCH_STOP=48
|
||||
SUBSCRIBE=49
|
||||
UNSUBSCRIBE=50
|
||||
OPTIMISTIC_REGISTER=51
|
||||
CRDT=52
|
||||
OPTIONAL_ONE=53
|
||||
EXACTLY_ONE=54
|
||||
MANY_UNIQUE=55
|
||||
MANY=56
|
||||
ORDERED=57
|
||||
UNIT=58
|
||||
WATCH_HANDLE=59
|
||||
MESSAGE=60
|
||||
ATOM_REF=61
|
||||
INTERFACE_REF=62
|
||||
OPTIONAL=63
|
||||
LIST=64
|
||||
BOOL=65
|
||||
BYTES=66
|
||||
DOUBLE=67
|
||||
INT32=68
|
||||
INT64=69
|
||||
STRING=70
|
||||
UINT32=71
|
||||
UINT64=72
|
||||
TRUE=73
|
||||
FALSE=74
|
||||
NULL=75
|
||||
ARROW=76
|
||||
COLON=77
|
||||
SEMI=78
|
||||
COMMA=79
|
||||
DOT=80
|
||||
LBRACE=81
|
||||
RBRACE=82
|
||||
LBRACK=83
|
||||
RBRACK=84
|
||||
LPAREN=85
|
||||
RPAREN=86
|
||||
LT=87
|
||||
GT=88
|
||||
INTEGER=89
|
||||
JSON_NUMBER=90
|
||||
IDENTIFIER=91
|
||||
STRING_LITERAL=92
|
||||
LINE_COMMENT=93
|
||||
BLOCK_COMMENT=94
|
||||
WS=95
|
||||
USING=22
|
||||
VIA=23
|
||||
MATERIALIZE=24
|
||||
IF=25
|
||||
ABSENT=26
|
||||
ON=27
|
||||
POLICY=28
|
||||
DEFAULT=29
|
||||
SOURCE=30
|
||||
REPOSITORY=31
|
||||
COMMIT=32
|
||||
REVISION=33
|
||||
ID=34
|
||||
DOC=35
|
||||
MODE=36
|
||||
EMITS=37
|
||||
RECEIVER=38
|
||||
REQUIRES=39
|
||||
ANY=40
|
||||
GET=41
|
||||
SET=42
|
||||
WATCH=43
|
||||
START=44
|
||||
STOP=45
|
||||
READ=46
|
||||
WRITE=47
|
||||
RESOLVE=48
|
||||
CONNECT=49
|
||||
DISCONNECT=50
|
||||
CALL=51
|
||||
WATCH_START=52
|
||||
WATCH_STOP=53
|
||||
SUBSCRIBE=54
|
||||
UNSUBSCRIBE=55
|
||||
OPTIMISTIC_REGISTER=56
|
||||
CRDT=57
|
||||
OPTIONAL_ONE=58
|
||||
EXACTLY_ONE=59
|
||||
MANY_UNIQUE=60
|
||||
MANY=61
|
||||
ORDERED=62
|
||||
UNIT=63
|
||||
WATCH_HANDLE=64
|
||||
MESSAGE=65
|
||||
ATOM_REF=66
|
||||
INTERFACE_REF=67
|
||||
OPTIONAL=68
|
||||
LIST=69
|
||||
BOOL=70
|
||||
BYTES=71
|
||||
DOUBLE=72
|
||||
INT32=73
|
||||
INT64=74
|
||||
STRING=75
|
||||
UINT32=76
|
||||
UINT64=77
|
||||
TRUE=78
|
||||
FALSE=79
|
||||
NULL=80
|
||||
ARROW=81
|
||||
COLON=82
|
||||
SEMI=83
|
||||
COMMA=84
|
||||
DOT=85
|
||||
LBRACE=86
|
||||
RBRACE=87
|
||||
LBRACK=88
|
||||
RBRACK=89
|
||||
LPAREN=90
|
||||
RPAREN=91
|
||||
LT=92
|
||||
GT=93
|
||||
INTEGER=94
|
||||
JSON_NUMBER=95
|
||||
IDENTIFIER=96
|
||||
STRING_LITERAL=97
|
||||
LINE_COMMENT=98
|
||||
BLOCK_COMMENT=99
|
||||
WS=100
|
||||
'workspace'=1
|
||||
'atom'=2
|
||||
'interface'=3
|
||||
@@ -114,70 +119,75 @@ WS=95
|
||||
'edge'=19
|
||||
'projection'=20
|
||||
'with'=21
|
||||
'on'=22
|
||||
'policy'=23
|
||||
'default'=24
|
||||
'source'=25
|
||||
'repository'=26
|
||||
'commit'=27
|
||||
'revision'=28
|
||||
'id'=29
|
||||
'doc'=30
|
||||
'mode'=31
|
||||
'emits'=32
|
||||
'receiver'=33
|
||||
'requires'=34
|
||||
'any'=35
|
||||
'get'=36
|
||||
'set'=37
|
||||
'watch'=38
|
||||
'start'=39
|
||||
'stop'=40
|
||||
'read'=41
|
||||
'write'=42
|
||||
'resolve'=43
|
||||
'connect'=44
|
||||
'disconnect'=45
|
||||
'call'=46
|
||||
'watch-start'=47
|
||||
'watch-stop'=48
|
||||
'subscribe'=49
|
||||
'unsubscribe'=50
|
||||
'optimistic-register'=51
|
||||
'crdt'=52
|
||||
'optional-one'=53
|
||||
'exactly-one'=54
|
||||
'many-unique'=55
|
||||
'many'=56
|
||||
'ordered'=57
|
||||
'unit'=58
|
||||
'watch-handle'=59
|
||||
'message'=60
|
||||
'atom-ref'=61
|
||||
'interface-ref'=62
|
||||
'optional'=63
|
||||
'list'=64
|
||||
'bool'=65
|
||||
'bytes'=66
|
||||
'double'=67
|
||||
'int32'=68
|
||||
'int64'=69
|
||||
'string'=70
|
||||
'uint32'=71
|
||||
'uint64'=72
|
||||
'true'=73
|
||||
'false'=74
|
||||
'null'=75
|
||||
'->'=76
|
||||
':'=77
|
||||
';'=78
|
||||
','=79
|
||||
'.'=80
|
||||
'{'=81
|
||||
'}'=82
|
||||
'['=83
|
||||
']'=84
|
||||
'('=85
|
||||
')'=86
|
||||
'<'=87
|
||||
'>'=88
|
||||
'using'=22
|
||||
'via'=23
|
||||
'materialize'=24
|
||||
'if'=25
|
||||
'absent'=26
|
||||
'on'=27
|
||||
'policy'=28
|
||||
'default'=29
|
||||
'source'=30
|
||||
'repository'=31
|
||||
'commit'=32
|
||||
'revision'=33
|
||||
'id'=34
|
||||
'doc'=35
|
||||
'mode'=36
|
||||
'emits'=37
|
||||
'receiver'=38
|
||||
'requires'=39
|
||||
'any'=40
|
||||
'get'=41
|
||||
'set'=42
|
||||
'watch'=43
|
||||
'start'=44
|
||||
'stop'=45
|
||||
'read'=46
|
||||
'write'=47
|
||||
'resolve'=48
|
||||
'connect'=49
|
||||
'disconnect'=50
|
||||
'call'=51
|
||||
'watch-start'=52
|
||||
'watch-stop'=53
|
||||
'subscribe'=54
|
||||
'unsubscribe'=55
|
||||
'optimistic-register'=56
|
||||
'crdt'=57
|
||||
'optional-one'=58
|
||||
'exactly-one'=59
|
||||
'many-unique'=60
|
||||
'many'=61
|
||||
'ordered'=62
|
||||
'unit'=63
|
||||
'watch-handle'=64
|
||||
'message'=65
|
||||
'atom-ref'=66
|
||||
'interface-ref'=67
|
||||
'optional'=68
|
||||
'list'=69
|
||||
'bool'=70
|
||||
'bytes'=71
|
||||
'double'=72
|
||||
'int32'=73
|
||||
'int64'=74
|
||||
'string'=75
|
||||
'uint32'=76
|
||||
'uint64'=77
|
||||
'true'=78
|
||||
'false'=79
|
||||
'null'=80
|
||||
'->'=81
|
||||
':'=82
|
||||
';'=83
|
||||
','=84
|
||||
'.'=85
|
||||
'{'=86
|
||||
'}'=87
|
||||
'['=88
|
||||
']'=89
|
||||
'('=90
|
||||
')'=91
|
||||
'<'=92
|
||||
'>'=93
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,80 +19,85 @@ STATE=18
|
||||
EDGE=19
|
||||
PROJECTION=20
|
||||
WITH=21
|
||||
ON=22
|
||||
POLICY=23
|
||||
DEFAULT=24
|
||||
SOURCE=25
|
||||
REPOSITORY=26
|
||||
COMMIT=27
|
||||
REVISION=28
|
||||
ID=29
|
||||
DOC=30
|
||||
MODE=31
|
||||
EMITS=32
|
||||
RECEIVER=33
|
||||
REQUIRES=34
|
||||
ANY=35
|
||||
GET=36
|
||||
SET=37
|
||||
WATCH=38
|
||||
START=39
|
||||
STOP=40
|
||||
READ=41
|
||||
WRITE=42
|
||||
RESOLVE=43
|
||||
CONNECT=44
|
||||
DISCONNECT=45
|
||||
CALL=46
|
||||
WATCH_START=47
|
||||
WATCH_STOP=48
|
||||
SUBSCRIBE=49
|
||||
UNSUBSCRIBE=50
|
||||
OPTIMISTIC_REGISTER=51
|
||||
CRDT=52
|
||||
OPTIONAL_ONE=53
|
||||
EXACTLY_ONE=54
|
||||
MANY_UNIQUE=55
|
||||
MANY=56
|
||||
ORDERED=57
|
||||
UNIT=58
|
||||
WATCH_HANDLE=59
|
||||
MESSAGE=60
|
||||
ATOM_REF=61
|
||||
INTERFACE_REF=62
|
||||
OPTIONAL=63
|
||||
LIST=64
|
||||
BOOL=65
|
||||
BYTES=66
|
||||
DOUBLE=67
|
||||
INT32=68
|
||||
INT64=69
|
||||
STRING=70
|
||||
UINT32=71
|
||||
UINT64=72
|
||||
TRUE=73
|
||||
FALSE=74
|
||||
NULL=75
|
||||
ARROW=76
|
||||
COLON=77
|
||||
SEMI=78
|
||||
COMMA=79
|
||||
DOT=80
|
||||
LBRACE=81
|
||||
RBRACE=82
|
||||
LBRACK=83
|
||||
RBRACK=84
|
||||
LPAREN=85
|
||||
RPAREN=86
|
||||
LT=87
|
||||
GT=88
|
||||
INTEGER=89
|
||||
JSON_NUMBER=90
|
||||
IDENTIFIER=91
|
||||
STRING_LITERAL=92
|
||||
LINE_COMMENT=93
|
||||
BLOCK_COMMENT=94
|
||||
WS=95
|
||||
USING=22
|
||||
VIA=23
|
||||
MATERIALIZE=24
|
||||
IF=25
|
||||
ABSENT=26
|
||||
ON=27
|
||||
POLICY=28
|
||||
DEFAULT=29
|
||||
SOURCE=30
|
||||
REPOSITORY=31
|
||||
COMMIT=32
|
||||
REVISION=33
|
||||
ID=34
|
||||
DOC=35
|
||||
MODE=36
|
||||
EMITS=37
|
||||
RECEIVER=38
|
||||
REQUIRES=39
|
||||
ANY=40
|
||||
GET=41
|
||||
SET=42
|
||||
WATCH=43
|
||||
START=44
|
||||
STOP=45
|
||||
READ=46
|
||||
WRITE=47
|
||||
RESOLVE=48
|
||||
CONNECT=49
|
||||
DISCONNECT=50
|
||||
CALL=51
|
||||
WATCH_START=52
|
||||
WATCH_STOP=53
|
||||
SUBSCRIBE=54
|
||||
UNSUBSCRIBE=55
|
||||
OPTIMISTIC_REGISTER=56
|
||||
CRDT=57
|
||||
OPTIONAL_ONE=58
|
||||
EXACTLY_ONE=59
|
||||
MANY_UNIQUE=60
|
||||
MANY=61
|
||||
ORDERED=62
|
||||
UNIT=63
|
||||
WATCH_HANDLE=64
|
||||
MESSAGE=65
|
||||
ATOM_REF=66
|
||||
INTERFACE_REF=67
|
||||
OPTIONAL=68
|
||||
LIST=69
|
||||
BOOL=70
|
||||
BYTES=71
|
||||
DOUBLE=72
|
||||
INT32=73
|
||||
INT64=74
|
||||
STRING=75
|
||||
UINT32=76
|
||||
UINT64=77
|
||||
TRUE=78
|
||||
FALSE=79
|
||||
NULL=80
|
||||
ARROW=81
|
||||
COLON=82
|
||||
SEMI=83
|
||||
COMMA=84
|
||||
DOT=85
|
||||
LBRACE=86
|
||||
RBRACE=87
|
||||
LBRACK=88
|
||||
RBRACK=89
|
||||
LPAREN=90
|
||||
RPAREN=91
|
||||
LT=92
|
||||
GT=93
|
||||
INTEGER=94
|
||||
JSON_NUMBER=95
|
||||
IDENTIFIER=96
|
||||
STRING_LITERAL=97
|
||||
LINE_COMMENT=98
|
||||
BLOCK_COMMENT=99
|
||||
WS=100
|
||||
'workspace'=1
|
||||
'atom'=2
|
||||
'interface'=3
|
||||
@@ -114,70 +119,75 @@ WS=95
|
||||
'edge'=19
|
||||
'projection'=20
|
||||
'with'=21
|
||||
'on'=22
|
||||
'policy'=23
|
||||
'default'=24
|
||||
'source'=25
|
||||
'repository'=26
|
||||
'commit'=27
|
||||
'revision'=28
|
||||
'id'=29
|
||||
'doc'=30
|
||||
'mode'=31
|
||||
'emits'=32
|
||||
'receiver'=33
|
||||
'requires'=34
|
||||
'any'=35
|
||||
'get'=36
|
||||
'set'=37
|
||||
'watch'=38
|
||||
'start'=39
|
||||
'stop'=40
|
||||
'read'=41
|
||||
'write'=42
|
||||
'resolve'=43
|
||||
'connect'=44
|
||||
'disconnect'=45
|
||||
'call'=46
|
||||
'watch-start'=47
|
||||
'watch-stop'=48
|
||||
'subscribe'=49
|
||||
'unsubscribe'=50
|
||||
'optimistic-register'=51
|
||||
'crdt'=52
|
||||
'optional-one'=53
|
||||
'exactly-one'=54
|
||||
'many-unique'=55
|
||||
'many'=56
|
||||
'ordered'=57
|
||||
'unit'=58
|
||||
'watch-handle'=59
|
||||
'message'=60
|
||||
'atom-ref'=61
|
||||
'interface-ref'=62
|
||||
'optional'=63
|
||||
'list'=64
|
||||
'bool'=65
|
||||
'bytes'=66
|
||||
'double'=67
|
||||
'int32'=68
|
||||
'int64'=69
|
||||
'string'=70
|
||||
'uint32'=71
|
||||
'uint64'=72
|
||||
'true'=73
|
||||
'false'=74
|
||||
'null'=75
|
||||
'->'=76
|
||||
':'=77
|
||||
';'=78
|
||||
','=79
|
||||
'.'=80
|
||||
'{'=81
|
||||
'}'=82
|
||||
'['=83
|
||||
']'=84
|
||||
'('=85
|
||||
')'=86
|
||||
'<'=87
|
||||
'>'=88
|
||||
'using'=22
|
||||
'via'=23
|
||||
'materialize'=24
|
||||
'if'=25
|
||||
'absent'=26
|
||||
'on'=27
|
||||
'policy'=28
|
||||
'default'=29
|
||||
'source'=30
|
||||
'repository'=31
|
||||
'commit'=32
|
||||
'revision'=33
|
||||
'id'=34
|
||||
'doc'=35
|
||||
'mode'=36
|
||||
'emits'=37
|
||||
'receiver'=38
|
||||
'requires'=39
|
||||
'any'=40
|
||||
'get'=41
|
||||
'set'=42
|
||||
'watch'=43
|
||||
'start'=44
|
||||
'stop'=45
|
||||
'read'=46
|
||||
'write'=47
|
||||
'resolve'=48
|
||||
'connect'=49
|
||||
'disconnect'=50
|
||||
'call'=51
|
||||
'watch-start'=52
|
||||
'watch-stop'=53
|
||||
'subscribe'=54
|
||||
'unsubscribe'=55
|
||||
'optimistic-register'=56
|
||||
'crdt'=57
|
||||
'optional-one'=58
|
||||
'exactly-one'=59
|
||||
'many-unique'=60
|
||||
'many'=61
|
||||
'ordered'=62
|
||||
'unit'=63
|
||||
'watch-handle'=64
|
||||
'message'=65
|
||||
'atom-ref'=66
|
||||
'interface-ref'=67
|
||||
'optional'=68
|
||||
'list'=69
|
||||
'bool'=70
|
||||
'bytes'=71
|
||||
'double'=72
|
||||
'int32'=73
|
||||
'int64'=74
|
||||
'string'=75
|
||||
'uint32'=76
|
||||
'uint64'=77
|
||||
'true'=78
|
||||
'false'=79
|
||||
'null'=80
|
||||
'->'=81
|
||||
':'=82
|
||||
';'=83
|
||||
','=84
|
||||
'.'=85
|
||||
'{'=86
|
||||
'}'=87
|
||||
'['=88
|
||||
']'=89
|
||||
'('=90
|
||||
')'=91
|
||||
'<'=92
|
||||
'>'=93
|
||||
|
||||
@@ -25,80 +25,85 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
||||
public static readonly EDGE = 19;
|
||||
public static readonly PROJECTION = 20;
|
||||
public static readonly WITH = 21;
|
||||
public static readonly ON = 22;
|
||||
public static readonly POLICY = 23;
|
||||
public static readonly DEFAULT = 24;
|
||||
public static readonly SOURCE = 25;
|
||||
public static readonly REPOSITORY = 26;
|
||||
public static readonly COMMIT = 27;
|
||||
public static readonly REVISION = 28;
|
||||
public static readonly ID = 29;
|
||||
public static readonly DOC = 30;
|
||||
public static readonly MODE = 31;
|
||||
public static readonly EMITS = 32;
|
||||
public static readonly RECEIVER = 33;
|
||||
public static readonly REQUIRES = 34;
|
||||
public static readonly ANY = 35;
|
||||
public static readonly GET = 36;
|
||||
public static readonly SET = 37;
|
||||
public static readonly WATCH = 38;
|
||||
public static readonly START = 39;
|
||||
public static readonly STOP = 40;
|
||||
public static readonly READ = 41;
|
||||
public static readonly WRITE = 42;
|
||||
public static readonly RESOLVE = 43;
|
||||
public static readonly CONNECT = 44;
|
||||
public static readonly DISCONNECT = 45;
|
||||
public static readonly CALL = 46;
|
||||
public static readonly WATCH_START = 47;
|
||||
public static readonly WATCH_STOP = 48;
|
||||
public static readonly SUBSCRIBE = 49;
|
||||
public static readonly UNSUBSCRIBE = 50;
|
||||
public static readonly OPTIMISTIC_REGISTER = 51;
|
||||
public static readonly CRDT = 52;
|
||||
public static readonly OPTIONAL_ONE = 53;
|
||||
public static readonly EXACTLY_ONE = 54;
|
||||
public static readonly MANY_UNIQUE = 55;
|
||||
public static readonly MANY = 56;
|
||||
public static readonly ORDERED = 57;
|
||||
public static readonly UNIT = 58;
|
||||
public static readonly WATCH_HANDLE = 59;
|
||||
public static readonly MESSAGE = 60;
|
||||
public static readonly ATOM_REF = 61;
|
||||
public static readonly INTERFACE_REF = 62;
|
||||
public static readonly OPTIONAL = 63;
|
||||
public static readonly LIST = 64;
|
||||
public static readonly BOOL = 65;
|
||||
public static readonly BYTES = 66;
|
||||
public static readonly DOUBLE = 67;
|
||||
public static readonly INT32 = 68;
|
||||
public static readonly INT64 = 69;
|
||||
public static readonly STRING = 70;
|
||||
public static readonly UINT32 = 71;
|
||||
public static readonly UINT64 = 72;
|
||||
public static readonly TRUE = 73;
|
||||
public static readonly FALSE = 74;
|
||||
public static readonly NULL = 75;
|
||||
public static readonly ARROW = 76;
|
||||
public static readonly COLON = 77;
|
||||
public static readonly SEMI = 78;
|
||||
public static readonly COMMA = 79;
|
||||
public static readonly DOT = 80;
|
||||
public static readonly LBRACE = 81;
|
||||
public static readonly RBRACE = 82;
|
||||
public static readonly LBRACK = 83;
|
||||
public static readonly RBRACK = 84;
|
||||
public static readonly LPAREN = 85;
|
||||
public static readonly RPAREN = 86;
|
||||
public static readonly LT = 87;
|
||||
public static readonly GT = 88;
|
||||
public static readonly INTEGER = 89;
|
||||
public static readonly JSON_NUMBER = 90;
|
||||
public static readonly IDENTIFIER = 91;
|
||||
public static readonly STRING_LITERAL = 92;
|
||||
public static readonly LINE_COMMENT = 93;
|
||||
public static readonly BLOCK_COMMENT = 94;
|
||||
public static readonly WS = 95;
|
||||
public static readonly USING = 22;
|
||||
public static readonly VIA = 23;
|
||||
public static readonly MATERIALIZE = 24;
|
||||
public static readonly IF = 25;
|
||||
public static readonly ABSENT = 26;
|
||||
public static readonly ON = 27;
|
||||
public static readonly POLICY = 28;
|
||||
public static readonly DEFAULT = 29;
|
||||
public static readonly SOURCE = 30;
|
||||
public static readonly REPOSITORY = 31;
|
||||
public static readonly COMMIT = 32;
|
||||
public static readonly REVISION = 33;
|
||||
public static readonly ID = 34;
|
||||
public static readonly DOC = 35;
|
||||
public static readonly MODE = 36;
|
||||
public static readonly EMITS = 37;
|
||||
public static readonly RECEIVER = 38;
|
||||
public static readonly REQUIRES = 39;
|
||||
public static readonly ANY = 40;
|
||||
public static readonly GET = 41;
|
||||
public static readonly SET = 42;
|
||||
public static readonly WATCH = 43;
|
||||
public static readonly START = 44;
|
||||
public static readonly STOP = 45;
|
||||
public static readonly READ = 46;
|
||||
public static readonly WRITE = 47;
|
||||
public static readonly RESOLVE = 48;
|
||||
public static readonly CONNECT = 49;
|
||||
public static readonly DISCONNECT = 50;
|
||||
public static readonly CALL = 51;
|
||||
public static readonly WATCH_START = 52;
|
||||
public static readonly WATCH_STOP = 53;
|
||||
public static readonly SUBSCRIBE = 54;
|
||||
public static readonly UNSUBSCRIBE = 55;
|
||||
public static readonly OPTIMISTIC_REGISTER = 56;
|
||||
public static readonly CRDT = 57;
|
||||
public static readonly OPTIONAL_ONE = 58;
|
||||
public static readonly EXACTLY_ONE = 59;
|
||||
public static readonly MANY_UNIQUE = 60;
|
||||
public static readonly MANY = 61;
|
||||
public static readonly ORDERED = 62;
|
||||
public static readonly UNIT = 63;
|
||||
public static readonly WATCH_HANDLE = 64;
|
||||
public static readonly MESSAGE = 65;
|
||||
public static readonly ATOM_REF = 66;
|
||||
public static readonly INTERFACE_REF = 67;
|
||||
public static readonly OPTIONAL = 68;
|
||||
public static readonly LIST = 69;
|
||||
public static readonly BOOL = 70;
|
||||
public static readonly BYTES = 71;
|
||||
public static readonly DOUBLE = 72;
|
||||
public static readonly INT32 = 73;
|
||||
public static readonly INT64 = 74;
|
||||
public static readonly STRING = 75;
|
||||
public static readonly UINT32 = 76;
|
||||
public static readonly UINT64 = 77;
|
||||
public static readonly TRUE = 78;
|
||||
public static readonly FALSE = 79;
|
||||
public static readonly NULL = 80;
|
||||
public static readonly ARROW = 81;
|
||||
public static readonly COLON = 82;
|
||||
public static readonly SEMI = 83;
|
||||
public static readonly COMMA = 84;
|
||||
public static readonly DOT = 85;
|
||||
public static readonly LBRACE = 86;
|
||||
public static readonly RBRACE = 87;
|
||||
public static readonly LBRACK = 88;
|
||||
public static readonly RBRACK = 89;
|
||||
public static readonly LPAREN = 90;
|
||||
public static readonly RPAREN = 91;
|
||||
public static readonly LT = 92;
|
||||
public static readonly GT = 93;
|
||||
public static readonly INTEGER = 94;
|
||||
public static readonly JSON_NUMBER = 95;
|
||||
public static readonly IDENTIFIER = 96;
|
||||
public static readonly STRING_LITERAL = 97;
|
||||
public static readonly LINE_COMMENT = 98;
|
||||
public static readonly BLOCK_COMMENT = 99;
|
||||
public static readonly WS = 100;
|
||||
|
||||
public static readonly channelNames = [
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
@@ -108,37 +113,38 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
||||
null, "'workspace'", "'atom'", "'interface'", "'interfaces'", "'package'",
|
||||
"'value'", "'relation'", "'operation'", "'function'", "'constructor'",
|
||||
"'constructs'", "'conform'", "'as'", "'bind'", "'to'", "'private'",
|
||||
"'shared'", "'state'", "'edge'", "'projection'", "'with'", "'on'",
|
||||
"'policy'", "'default'", "'source'", "'repository'", "'commit'",
|
||||
"'revision'", "'id'", "'doc'", "'mode'", "'emits'", "'receiver'",
|
||||
"'requires'", "'any'", "'get'", "'set'", "'watch'", "'start'", "'stop'",
|
||||
"'read'", "'write'", "'resolve'", "'connect'", "'disconnect'", "'call'",
|
||||
"'watch-start'", "'watch-stop'", "'subscribe'", "'unsubscribe'",
|
||||
"'optimistic-register'", "'crdt'", "'optional-one'", "'exactly-one'",
|
||||
"'many-unique'", "'many'", "'ordered'", "'unit'", "'watch-handle'",
|
||||
"'message'", "'atom-ref'", "'interface-ref'", "'optional'", "'list'",
|
||||
"'bool'", "'bytes'", "'double'", "'int32'", "'int64'", "'string'",
|
||||
"'uint32'", "'uint64'", "'true'", "'false'", "'null'", "'->'", "':'",
|
||||
"';'", "','", "'.'", "'{'", "'}'", "'['", "']'", "'('", "')'", "'<'",
|
||||
"'>'"
|
||||
"'shared'", "'state'", "'edge'", "'projection'", "'with'", "'using'",
|
||||
"'via'", "'materialize'", "'if'", "'absent'", "'on'", "'policy'",
|
||||
"'default'", "'source'", "'repository'", "'commit'", "'revision'",
|
||||
"'id'", "'doc'", "'mode'", "'emits'", "'receiver'", "'requires'",
|
||||
"'any'", "'get'", "'set'", "'watch'", "'start'", "'stop'", "'read'",
|
||||
"'write'", "'resolve'", "'connect'", "'disconnect'", "'call'", "'watch-start'",
|
||||
"'watch-stop'", "'subscribe'", "'unsubscribe'", "'optimistic-register'",
|
||||
"'crdt'", "'optional-one'", "'exactly-one'", "'many-unique'", "'many'",
|
||||
"'ordered'", "'unit'", "'watch-handle'", "'message'", "'atom-ref'",
|
||||
"'interface-ref'", "'optional'", "'list'", "'bool'", "'bytes'",
|
||||
"'double'", "'int32'", "'int64'", "'string'", "'uint32'", "'uint64'",
|
||||
"'true'", "'false'", "'null'", "'->'", "':'", "';'", "','", "'.'",
|
||||
"'{'", "'}'", "'['", "']'", "'('", "')'", "'<'", "'>'"
|
||||
];
|
||||
|
||||
public static readonly symbolicNames = [
|
||||
null, "WORKSPACE", "ATOM", "INTERFACE", "INTERFACES", "PACKAGE",
|
||||
"VALUE", "RELATION", "OPERATION", "FUNCTION", "CONSTRUCTOR", "CONSTRUCTS",
|
||||
"CONFORM", "AS", "BIND", "TO", "PRIVATE", "SHARED", "STATE", "EDGE",
|
||||
"PROJECTION", "WITH", "ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY",
|
||||
"COMMIT", "REVISION", "ID", "DOC", "MODE", "EMITS", "RECEIVER",
|
||||
"REQUIRES", "ANY", "GET", "SET", "WATCH", "START", "STOP", "READ",
|
||||
"WRITE", "RESOLVE", "CONNECT", "DISCONNECT", "CALL", "WATCH_START",
|
||||
"WATCH_STOP", "SUBSCRIBE", "UNSUBSCRIBE", "OPTIMISTIC_REGISTER",
|
||||
"CRDT", "OPTIONAL_ONE", "EXACTLY_ONE", "MANY_UNIQUE", "MANY", "ORDERED",
|
||||
"UNIT", "WATCH_HANDLE", "MESSAGE", "ATOM_REF", "INTERFACE_REF",
|
||||
"OPTIONAL", "LIST", "BOOL", "BYTES", "DOUBLE", "INT32", "INT64",
|
||||
"STRING", "UINT32", "UINT64", "TRUE", "FALSE", "NULL", "ARROW",
|
||||
"COLON", "SEMI", "COMMA", "DOT", "LBRACE", "RBRACE", "LBRACK", "RBRACK",
|
||||
"LPAREN", "RPAREN", "LT", "GT", "INTEGER", "JSON_NUMBER", "IDENTIFIER",
|
||||
"STRING_LITERAL", "LINE_COMMENT", "BLOCK_COMMENT", "WS"
|
||||
"PROJECTION", "WITH", "USING", "VIA", "MATERIALIZE", "IF", "ABSENT",
|
||||
"ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY", "COMMIT", "REVISION",
|
||||
"ID", "DOC", "MODE", "EMITS", "RECEIVER", "REQUIRES", "ANY", "GET",
|
||||
"SET", "WATCH", "START", "STOP", "READ", "WRITE", "RESOLVE", "CONNECT",
|
||||
"DISCONNECT", "CALL", "WATCH_START", "WATCH_STOP", "SUBSCRIBE",
|
||||
"UNSUBSCRIBE", "OPTIMISTIC_REGISTER", "CRDT", "OPTIONAL_ONE", "EXACTLY_ONE",
|
||||
"MANY_UNIQUE", "MANY", "ORDERED", "UNIT", "WATCH_HANDLE", "MESSAGE",
|
||||
"ATOM_REF", "INTERFACE_REF", "OPTIONAL", "LIST", "BOOL", "BYTES",
|
||||
"DOUBLE", "INT32", "INT64", "STRING", "UINT32", "UINT64", "TRUE",
|
||||
"FALSE", "NULL", "ARROW", "COLON", "SEMI", "COMMA", "DOT", "LBRACE",
|
||||
"RBRACE", "LBRACK", "RBRACK", "LPAREN", "RPAREN", "LT", "GT", "INTEGER",
|
||||
"JSON_NUMBER", "IDENTIFIER", "STRING_LITERAL", "LINE_COMMENT", "BLOCK_COMMENT",
|
||||
"WS"
|
||||
];
|
||||
|
||||
public static readonly modeNames = [
|
||||
@@ -149,19 +155,19 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
||||
"WORKSPACE", "ATOM", "INTERFACE", "INTERFACES", "PACKAGE", "VALUE",
|
||||
"RELATION", "OPERATION", "FUNCTION", "CONSTRUCTOR", "CONSTRUCTS",
|
||||
"CONFORM", "AS", "BIND", "TO", "PRIVATE", "SHARED", "STATE", "EDGE",
|
||||
"PROJECTION", "WITH", "ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY",
|
||||
"COMMIT", "REVISION", "ID", "DOC", "MODE", "EMITS", "RECEIVER",
|
||||
"REQUIRES", "ANY", "GET", "SET", "WATCH", "START", "STOP", "READ",
|
||||
"WRITE", "RESOLVE", "CONNECT", "DISCONNECT", "CALL", "WATCH_START",
|
||||
"WATCH_STOP", "SUBSCRIBE", "UNSUBSCRIBE", "OPTIMISTIC_REGISTER",
|
||||
"CRDT", "OPTIONAL_ONE", "EXACTLY_ONE", "MANY_UNIQUE", "MANY", "ORDERED",
|
||||
"UNIT", "WATCH_HANDLE", "MESSAGE", "ATOM_REF", "INTERFACE_REF",
|
||||
"OPTIONAL", "LIST", "BOOL", "BYTES", "DOUBLE", "INT32", "INT64",
|
||||
"STRING", "UINT32", "UINT64", "TRUE", "FALSE", "NULL", "ARROW",
|
||||
"COLON", "SEMI", "COMMA", "DOT", "LBRACE", "RBRACE", "LBRACK", "RBRACK",
|
||||
"LPAREN", "RPAREN", "LT", "GT", "INTEGER", "JSON_NUMBER", "IDENTIFIER",
|
||||
"STRING_LITERAL", "ESC", "HEX", "LINE_COMMENT", "BLOCK_COMMENT",
|
||||
"WS",
|
||||
"PROJECTION", "WITH", "USING", "VIA", "MATERIALIZE", "IF", "ABSENT",
|
||||
"ON", "POLICY", "DEFAULT", "SOURCE", "REPOSITORY", "COMMIT", "REVISION",
|
||||
"ID", "DOC", "MODE", "EMITS", "RECEIVER", "REQUIRES", "ANY", "GET",
|
||||
"SET", "WATCH", "START", "STOP", "READ", "WRITE", "RESOLVE", "CONNECT",
|
||||
"DISCONNECT", "CALL", "WATCH_START", "WATCH_STOP", "SUBSCRIBE",
|
||||
"UNSUBSCRIBE", "OPTIMISTIC_REGISTER", "CRDT", "OPTIONAL_ONE", "EXACTLY_ONE",
|
||||
"MANY_UNIQUE", "MANY", "ORDERED", "UNIT", "WATCH_HANDLE", "MESSAGE",
|
||||
"ATOM_REF", "INTERFACE_REF", "OPTIONAL", "LIST", "BOOL", "BYTES",
|
||||
"DOUBLE", "INT32", "INT64", "STRING", "UINT32", "UINT64", "TRUE",
|
||||
"FALSE", "NULL", "ARROW", "COLON", "SEMI", "COMMA", "DOT", "LBRACE",
|
||||
"RBRACE", "LBRACK", "RBRACK", "LPAREN", "RPAREN", "LT", "GT", "INTEGER",
|
||||
"JSON_NUMBER", "IDENTIFIER", "STRING_LITERAL", "ESC", "HEX", "LINE_COMMENT",
|
||||
"BLOCK_COMMENT", "WS",
|
||||
];
|
||||
|
||||
|
||||
@@ -183,7 +189,7 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
||||
public get modeNames(): string[] { return QuixosCapabilityLexer.modeNames; }
|
||||
|
||||
public static readonly _serializedATN: number[] = [
|
||||
4,0,95,895,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
|
||||
4,0,100,937,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
|
||||
2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
|
||||
13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,
|
||||
19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,
|
||||
@@ -197,310 +203,325 @@ export class QuixosCapabilityLexer extends antlr.Lexer {
|
||||
71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,
|
||||
78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,
|
||||
84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,
|
||||
91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,1,0,1,
|
||||
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,
|
||||
2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,
|
||||
3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,
|
||||
5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,
|
||||
7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,
|
||||
9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,
|
||||
1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,
|
||||
1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15,
|
||||
1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
|
||||
1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,
|
||||
1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,
|
||||
1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,
|
||||
1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,
|
||||
1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,
|
||||
1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
|
||||
1,27,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,
|
||||
1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,
|
||||
1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,
|
||||
1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,
|
||||
1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,
|
||||
1,39,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,42,
|
||||
1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,
|
||||
1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,
|
||||
1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,
|
||||
1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,
|
||||
1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,
|
||||
1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,
|
||||
1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,
|
||||
1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,
|
||||
1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,
|
||||
1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,
|
||||
1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,
|
||||
1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,
|
||||
1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,
|
||||
1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,
|
||||
1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,
|
||||
1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,
|
||||
1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,65,1,65,
|
||||
1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,
|
||||
1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,
|
||||
1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,
|
||||
1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,
|
||||
1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,76,1,76,
|
||||
1,77,1,77,1,78,1,78,1,79,1,79,1,80,1,80,1,81,1,81,1,82,1,82,1,83,
|
||||
1,83,1,84,1,84,1,85,1,85,1,86,1,86,1,87,1,87,1,88,3,88,796,8,88,
|
||||
1,88,4,88,799,8,88,11,88,12,88,800,1,89,3,89,804,8,89,1,89,1,89,
|
||||
1,89,5,89,809,8,89,10,89,12,89,812,9,89,3,89,814,8,89,1,89,1,89,
|
||||
4,89,818,8,89,11,89,12,89,819,3,89,822,8,89,1,89,1,89,3,89,826,8,
|
||||
89,1,89,4,89,829,8,89,11,89,12,89,830,3,89,833,8,89,1,90,1,90,5,
|
||||
90,837,8,90,10,90,12,90,840,9,90,1,91,1,91,1,91,5,91,845,8,91,10,
|
||||
91,12,91,848,9,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,
|
||||
92,3,92,860,8,92,1,93,1,93,1,94,1,94,1,94,1,94,5,94,868,8,94,10,
|
||||
94,12,94,871,9,94,1,94,1,94,1,95,1,95,1,95,1,95,5,95,879,8,95,10,
|
||||
95,12,95,882,9,95,1,95,1,95,1,95,1,95,1,95,1,96,4,96,890,8,96,11,
|
||||
96,12,96,891,1,96,1,96,1,880,0,97,1,1,3,2,5,3,7,4,9,5,11,6,13,7,
|
||||
15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,
|
||||
37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,
|
||||
59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,
|
||||
81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,
|
||||
51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,
|
||||
121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,
|
||||
70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,
|
||||
159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,
|
||||
89,179,90,181,91,183,92,185,0,187,0,189,93,191,94,193,95,1,0,11,
|
||||
1,0,48,57,1,0,49,57,2,0,69,69,101,101,2,0,43,43,45,45,3,0,65,90,
|
||||
95,95,97,122,4,0,48,57,65,90,95,95,97,122,4,0,10,10,13,13,34,34,
|
||||
92,92,8,0,34,34,47,47,92,92,98,98,102,102,110,110,114,114,116,116,
|
||||
3,0,48,57,65,70,97,102,2,0,10,10,13,13,3,0,9,10,13,13,32,32,909,
|
||||
0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,
|
||||
1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,
|
||||
1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,
|
||||
1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,
|
||||
1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,
|
||||
1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,
|
||||
1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,
|
||||
1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,
|
||||
1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,
|
||||
1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,
|
||||
1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,
|
||||
0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,
|
||||
0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,
|
||||
129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,
|
||||
0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,
|
||||
1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,
|
||||
0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,
|
||||
0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,
|
||||
175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,
|
||||
0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,1,195,1,0,0,0,3,205,
|
||||
1,0,0,0,5,210,1,0,0,0,7,220,1,0,0,0,9,231,1,0,0,0,11,239,1,0,0,0,
|
||||
13,245,1,0,0,0,15,254,1,0,0,0,17,264,1,0,0,0,19,273,1,0,0,0,21,285,
|
||||
1,0,0,0,23,296,1,0,0,0,25,304,1,0,0,0,27,307,1,0,0,0,29,312,1,0,
|
||||
0,0,31,315,1,0,0,0,33,323,1,0,0,0,35,330,1,0,0,0,37,336,1,0,0,0,
|
||||
39,341,1,0,0,0,41,352,1,0,0,0,43,357,1,0,0,0,45,360,1,0,0,0,47,367,
|
||||
1,0,0,0,49,375,1,0,0,0,51,382,1,0,0,0,53,393,1,0,0,0,55,400,1,0,
|
||||
0,0,57,409,1,0,0,0,59,412,1,0,0,0,61,416,1,0,0,0,63,421,1,0,0,0,
|
||||
65,427,1,0,0,0,67,436,1,0,0,0,69,445,1,0,0,0,71,449,1,0,0,0,73,453,
|
||||
1,0,0,0,75,457,1,0,0,0,77,463,1,0,0,0,79,469,1,0,0,0,81,474,1,0,
|
||||
0,0,83,479,1,0,0,0,85,485,1,0,0,0,87,493,1,0,0,0,89,501,1,0,0,0,
|
||||
91,512,1,0,0,0,93,517,1,0,0,0,95,529,1,0,0,0,97,540,1,0,0,0,99,550,
|
||||
1,0,0,0,101,562,1,0,0,0,103,582,1,0,0,0,105,587,1,0,0,0,107,600,
|
||||
1,0,0,0,109,612,1,0,0,0,111,624,1,0,0,0,113,629,1,0,0,0,115,637,
|
||||
1,0,0,0,117,642,1,0,0,0,119,655,1,0,0,0,121,663,1,0,0,0,123,672,
|
||||
1,0,0,0,125,686,1,0,0,0,127,695,1,0,0,0,129,700,1,0,0,0,131,705,
|
||||
1,0,0,0,133,711,1,0,0,0,135,718,1,0,0,0,137,724,1,0,0,0,139,730,
|
||||
1,0,0,0,141,737,1,0,0,0,143,744,1,0,0,0,145,751,1,0,0,0,147,756,
|
||||
1,0,0,0,149,762,1,0,0,0,151,767,1,0,0,0,153,770,1,0,0,0,155,772,
|
||||
1,0,0,0,157,774,1,0,0,0,159,776,1,0,0,0,161,778,1,0,0,0,163,780,
|
||||
1,0,0,0,165,782,1,0,0,0,167,784,1,0,0,0,169,786,1,0,0,0,171,788,
|
||||
1,0,0,0,173,790,1,0,0,0,175,792,1,0,0,0,177,795,1,0,0,0,179,803,
|
||||
1,0,0,0,181,834,1,0,0,0,183,841,1,0,0,0,185,851,1,0,0,0,187,861,
|
||||
1,0,0,0,189,863,1,0,0,0,191,874,1,0,0,0,193,889,1,0,0,0,195,196,
|
||||
5,119,0,0,196,197,5,111,0,0,197,198,5,114,0,0,198,199,5,107,0,0,
|
||||
199,200,5,115,0,0,200,201,5,112,0,0,201,202,5,97,0,0,202,203,5,99,
|
||||
0,0,203,204,5,101,0,0,204,2,1,0,0,0,205,206,5,97,0,0,206,207,5,116,
|
||||
0,0,207,208,5,111,0,0,208,209,5,109,0,0,209,4,1,0,0,0,210,211,5,
|
||||
105,0,0,211,212,5,110,0,0,212,213,5,116,0,0,213,214,5,101,0,0,214,
|
||||
215,5,114,0,0,215,216,5,102,0,0,216,217,5,97,0,0,217,218,5,99,0,
|
||||
0,218,219,5,101,0,0,219,6,1,0,0,0,220,221,5,105,0,0,221,222,5,110,
|
||||
0,0,222,223,5,116,0,0,223,224,5,101,0,0,224,225,5,114,0,0,225,226,
|
||||
5,102,0,0,226,227,5,97,0,0,227,228,5,99,0,0,228,229,5,101,0,0,229,
|
||||
230,5,115,0,0,230,8,1,0,0,0,231,232,5,112,0,0,232,233,5,97,0,0,233,
|
||||
234,5,99,0,0,234,235,5,107,0,0,235,236,5,97,0,0,236,237,5,103,0,
|
||||
0,237,238,5,101,0,0,238,10,1,0,0,0,239,240,5,118,0,0,240,241,5,97,
|
||||
0,0,241,242,5,108,0,0,242,243,5,117,0,0,243,244,5,101,0,0,244,12,
|
||||
1,0,0,0,245,246,5,114,0,0,246,247,5,101,0,0,247,248,5,108,0,0,248,
|
||||
249,5,97,0,0,249,250,5,116,0,0,250,251,5,105,0,0,251,252,5,111,0,
|
||||
0,252,253,5,110,0,0,253,14,1,0,0,0,254,255,5,111,0,0,255,256,5,112,
|
||||
0,0,256,257,5,101,0,0,257,258,5,114,0,0,258,259,5,97,0,0,259,260,
|
||||
5,116,0,0,260,261,5,105,0,0,261,262,5,111,0,0,262,263,5,110,0,0,
|
||||
263,16,1,0,0,0,264,265,5,102,0,0,265,266,5,117,0,0,266,267,5,110,
|
||||
0,0,267,268,5,99,0,0,268,269,5,116,0,0,269,270,5,105,0,0,270,271,
|
||||
5,111,0,0,271,272,5,110,0,0,272,18,1,0,0,0,273,274,5,99,0,0,274,
|
||||
275,5,111,0,0,275,276,5,110,0,0,276,277,5,115,0,0,277,278,5,116,
|
||||
0,0,278,279,5,114,0,0,279,280,5,117,0,0,280,281,5,99,0,0,281,282,
|
||||
5,116,0,0,282,283,5,111,0,0,283,284,5,114,0,0,284,20,1,0,0,0,285,
|
||||
286,5,99,0,0,286,287,5,111,0,0,287,288,5,110,0,0,288,289,5,115,0,
|
||||
0,289,290,5,116,0,0,290,291,5,114,0,0,291,292,5,117,0,0,292,293,
|
||||
5,99,0,0,293,294,5,116,0,0,294,295,5,115,0,0,295,22,1,0,0,0,296,
|
||||
297,5,99,0,0,297,298,5,111,0,0,298,299,5,110,0,0,299,300,5,102,0,
|
||||
0,300,301,5,111,0,0,301,302,5,114,0,0,302,303,5,109,0,0,303,24,1,
|
||||
0,0,0,304,305,5,97,0,0,305,306,5,115,0,0,306,26,1,0,0,0,307,308,
|
||||
5,98,0,0,308,309,5,105,0,0,309,310,5,110,0,0,310,311,5,100,0,0,311,
|
||||
28,1,0,0,0,312,313,5,116,0,0,313,314,5,111,0,0,314,30,1,0,0,0,315,
|
||||
316,5,112,0,0,316,317,5,114,0,0,317,318,5,105,0,0,318,319,5,118,
|
||||
0,0,319,320,5,97,0,0,320,321,5,116,0,0,321,322,5,101,0,0,322,32,
|
||||
1,0,0,0,323,324,5,115,0,0,324,325,5,104,0,0,325,326,5,97,0,0,326,
|
||||
327,5,114,0,0,327,328,5,101,0,0,328,329,5,100,0,0,329,34,1,0,0,0,
|
||||
330,331,5,115,0,0,331,332,5,116,0,0,332,333,5,97,0,0,333,334,5,116,
|
||||
0,0,334,335,5,101,0,0,335,36,1,0,0,0,336,337,5,101,0,0,337,338,5,
|
||||
100,0,0,338,339,5,103,0,0,339,340,5,101,0,0,340,38,1,0,0,0,341,342,
|
||||
5,112,0,0,342,343,5,114,0,0,343,344,5,111,0,0,344,345,5,106,0,0,
|
||||
345,346,5,101,0,0,346,347,5,99,0,0,347,348,5,116,0,0,348,349,5,105,
|
||||
0,0,349,350,5,111,0,0,350,351,5,110,0,0,351,40,1,0,0,0,352,353,5,
|
||||
119,0,0,353,354,5,105,0,0,354,355,5,116,0,0,355,356,5,104,0,0,356,
|
||||
42,1,0,0,0,357,358,5,111,0,0,358,359,5,110,0,0,359,44,1,0,0,0,360,
|
||||
361,5,112,0,0,361,362,5,111,0,0,362,363,5,108,0,0,363,364,5,105,
|
||||
0,0,364,365,5,99,0,0,365,366,5,121,0,0,366,46,1,0,0,0,367,368,5,
|
||||
100,0,0,368,369,5,101,0,0,369,370,5,102,0,0,370,371,5,97,0,0,371,
|
||||
372,5,117,0,0,372,373,5,108,0,0,373,374,5,116,0,0,374,48,1,0,0,0,
|
||||
375,376,5,115,0,0,376,377,5,111,0,0,377,378,5,117,0,0,378,379,5,
|
||||
114,0,0,379,380,5,99,0,0,380,381,5,101,0,0,381,50,1,0,0,0,382,383,
|
||||
5,114,0,0,383,384,5,101,0,0,384,385,5,112,0,0,385,386,5,111,0,0,
|
||||
386,387,5,115,0,0,387,388,5,105,0,0,388,389,5,116,0,0,389,390,5,
|
||||
111,0,0,390,391,5,114,0,0,391,392,5,121,0,0,392,52,1,0,0,0,393,394,
|
||||
5,99,0,0,394,395,5,111,0,0,395,396,5,109,0,0,396,397,5,109,0,0,397,
|
||||
398,5,105,0,0,398,399,5,116,0,0,399,54,1,0,0,0,400,401,5,114,0,0,
|
||||
401,402,5,101,0,0,402,403,5,118,0,0,403,404,5,105,0,0,404,405,5,
|
||||
115,0,0,405,406,5,105,0,0,406,407,5,111,0,0,407,408,5,110,0,0,408,
|
||||
56,1,0,0,0,409,410,5,105,0,0,410,411,5,100,0,0,411,58,1,0,0,0,412,
|
||||
413,5,100,0,0,413,414,5,111,0,0,414,415,5,99,0,0,415,60,1,0,0,0,
|
||||
416,417,5,109,0,0,417,418,5,111,0,0,418,419,5,100,0,0,419,420,5,
|
||||
101,0,0,420,62,1,0,0,0,421,422,5,101,0,0,422,423,5,109,0,0,423,424,
|
||||
5,105,0,0,424,425,5,116,0,0,425,426,5,115,0,0,426,64,1,0,0,0,427,
|
||||
428,5,114,0,0,428,429,5,101,0,0,429,430,5,99,0,0,430,431,5,101,0,
|
||||
0,431,432,5,105,0,0,432,433,5,118,0,0,433,434,5,101,0,0,434,435,
|
||||
5,114,0,0,435,66,1,0,0,0,436,437,5,114,0,0,437,438,5,101,0,0,438,
|
||||
439,5,113,0,0,439,440,5,117,0,0,440,441,5,105,0,0,441,442,5,114,
|
||||
0,0,442,443,5,101,0,0,443,444,5,115,0,0,444,68,1,0,0,0,445,446,5,
|
||||
97,0,0,446,447,5,110,0,0,447,448,5,121,0,0,448,70,1,0,0,0,449,450,
|
||||
5,103,0,0,450,451,5,101,0,0,451,452,5,116,0,0,452,72,1,0,0,0,453,
|
||||
454,5,115,0,0,454,455,5,101,0,0,455,456,5,116,0,0,456,74,1,0,0,0,
|
||||
457,458,5,119,0,0,458,459,5,97,0,0,459,460,5,116,0,0,460,461,5,99,
|
||||
0,0,461,462,5,104,0,0,462,76,1,0,0,0,463,464,5,115,0,0,464,465,5,
|
||||
116,0,0,465,466,5,97,0,0,466,467,5,114,0,0,467,468,5,116,0,0,468,
|
||||
78,1,0,0,0,469,470,5,115,0,0,470,471,5,116,0,0,471,472,5,111,0,0,
|
||||
472,473,5,112,0,0,473,80,1,0,0,0,474,475,5,114,0,0,475,476,5,101,
|
||||
0,0,476,477,5,97,0,0,477,478,5,100,0,0,478,82,1,0,0,0,479,480,5,
|
||||
119,0,0,480,481,5,114,0,0,481,482,5,105,0,0,482,483,5,116,0,0,483,
|
||||
484,5,101,0,0,484,84,1,0,0,0,485,486,5,114,0,0,486,487,5,101,0,0,
|
||||
487,488,5,115,0,0,488,489,5,111,0,0,489,490,5,108,0,0,490,491,5,
|
||||
118,0,0,491,492,5,101,0,0,492,86,1,0,0,0,493,494,5,99,0,0,494,495,
|
||||
5,111,0,0,495,496,5,110,0,0,496,497,5,110,0,0,497,498,5,101,0,0,
|
||||
498,499,5,99,0,0,499,500,5,116,0,0,500,88,1,0,0,0,501,502,5,100,
|
||||
0,0,502,503,5,105,0,0,503,504,5,115,0,0,504,505,5,99,0,0,505,506,
|
||||
5,111,0,0,506,507,5,110,0,0,507,508,5,110,0,0,508,509,5,101,0,0,
|
||||
509,510,5,99,0,0,510,511,5,116,0,0,511,90,1,0,0,0,512,513,5,99,0,
|
||||
0,513,514,5,97,0,0,514,515,5,108,0,0,515,516,5,108,0,0,516,92,1,
|
||||
0,0,0,517,518,5,119,0,0,518,519,5,97,0,0,519,520,5,116,0,0,520,521,
|
||||
5,99,0,0,521,522,5,104,0,0,522,523,5,45,0,0,523,524,5,115,0,0,524,
|
||||
525,5,116,0,0,525,526,5,97,0,0,526,527,5,114,0,0,527,528,5,116,0,
|
||||
0,528,94,1,0,0,0,529,530,5,119,0,0,530,531,5,97,0,0,531,532,5,116,
|
||||
0,0,532,533,5,99,0,0,533,534,5,104,0,0,534,535,5,45,0,0,535,536,
|
||||
5,115,0,0,536,537,5,116,0,0,537,538,5,111,0,0,538,539,5,112,0,0,
|
||||
539,96,1,0,0,0,540,541,5,115,0,0,541,542,5,117,0,0,542,543,5,98,
|
||||
0,0,543,544,5,115,0,0,544,545,5,99,0,0,545,546,5,114,0,0,546,547,
|
||||
5,105,0,0,547,548,5,98,0,0,548,549,5,101,0,0,549,98,1,0,0,0,550,
|
||||
551,5,117,0,0,551,552,5,110,0,0,552,553,5,115,0,0,553,554,5,117,
|
||||
0,0,554,555,5,98,0,0,555,556,5,115,0,0,556,557,5,99,0,0,557,558,
|
||||
5,114,0,0,558,559,5,105,0,0,559,560,5,98,0,0,560,561,5,101,0,0,561,
|
||||
100,1,0,0,0,562,563,5,111,0,0,563,564,5,112,0,0,564,565,5,116,0,
|
||||
0,565,566,5,105,0,0,566,567,5,109,0,0,567,568,5,105,0,0,568,569,
|
||||
5,115,0,0,569,570,5,116,0,0,570,571,5,105,0,0,571,572,5,99,0,0,572,
|
||||
573,5,45,0,0,573,574,5,114,0,0,574,575,5,101,0,0,575,576,5,103,0,
|
||||
0,576,577,5,105,0,0,577,578,5,115,0,0,578,579,5,116,0,0,579,580,
|
||||
5,101,0,0,580,581,5,114,0,0,581,102,1,0,0,0,582,583,5,99,0,0,583,
|
||||
584,5,114,0,0,584,585,5,100,0,0,585,586,5,116,0,0,586,104,1,0,0,
|
||||
0,587,588,5,111,0,0,588,589,5,112,0,0,589,590,5,116,0,0,590,591,
|
||||
5,105,0,0,591,592,5,111,0,0,592,593,5,110,0,0,593,594,5,97,0,0,594,
|
||||
595,5,108,0,0,595,596,5,45,0,0,596,597,5,111,0,0,597,598,5,110,0,
|
||||
0,598,599,5,101,0,0,599,106,1,0,0,0,600,601,5,101,0,0,601,602,5,
|
||||
120,0,0,602,603,5,97,0,0,603,604,5,99,0,0,604,605,5,116,0,0,605,
|
||||
606,5,108,0,0,606,607,5,121,0,0,607,608,5,45,0,0,608,609,5,111,0,
|
||||
0,609,610,5,110,0,0,610,611,5,101,0,0,611,108,1,0,0,0,612,613,5,
|
||||
109,0,0,613,614,5,97,0,0,614,615,5,110,0,0,615,616,5,121,0,0,616,
|
||||
617,5,45,0,0,617,618,5,117,0,0,618,619,5,110,0,0,619,620,5,105,0,
|
||||
0,620,621,5,113,0,0,621,622,5,117,0,0,622,623,5,101,0,0,623,110,
|
||||
1,0,0,0,624,625,5,109,0,0,625,626,5,97,0,0,626,627,5,110,0,0,627,
|
||||
628,5,121,0,0,628,112,1,0,0,0,629,630,5,111,0,0,630,631,5,114,0,
|
||||
0,631,632,5,100,0,0,632,633,5,101,0,0,633,634,5,114,0,0,634,635,
|
||||
5,101,0,0,635,636,5,100,0,0,636,114,1,0,0,0,637,638,5,117,0,0,638,
|
||||
639,5,110,0,0,639,640,5,105,0,0,640,641,5,116,0,0,641,116,1,0,0,
|
||||
0,642,643,5,119,0,0,643,644,5,97,0,0,644,645,5,116,0,0,645,646,5,
|
||||
99,0,0,646,647,5,104,0,0,647,648,5,45,0,0,648,649,5,104,0,0,649,
|
||||
650,5,97,0,0,650,651,5,110,0,0,651,652,5,100,0,0,652,653,5,108,0,
|
||||
0,653,654,5,101,0,0,654,118,1,0,0,0,655,656,5,109,0,0,656,657,5,
|
||||
101,0,0,657,658,5,115,0,0,658,659,5,115,0,0,659,660,5,97,0,0,660,
|
||||
661,5,103,0,0,661,662,5,101,0,0,662,120,1,0,0,0,663,664,5,97,0,0,
|
||||
664,665,5,116,0,0,665,666,5,111,0,0,666,667,5,109,0,0,667,668,5,
|
||||
45,0,0,668,669,5,114,0,0,669,670,5,101,0,0,670,671,5,102,0,0,671,
|
||||
122,1,0,0,0,672,673,5,105,0,0,673,674,5,110,0,0,674,675,5,116,0,
|
||||
0,675,676,5,101,0,0,676,677,5,114,0,0,677,678,5,102,0,0,678,679,
|
||||
5,97,0,0,679,680,5,99,0,0,680,681,5,101,0,0,681,682,5,45,0,0,682,
|
||||
683,5,114,0,0,683,684,5,101,0,0,684,685,5,102,0,0,685,124,1,0,0,
|
||||
0,686,687,5,111,0,0,687,688,5,112,0,0,688,689,5,116,0,0,689,690,
|
||||
5,105,0,0,690,691,5,111,0,0,691,692,5,110,0,0,692,693,5,97,0,0,693,
|
||||
694,5,108,0,0,694,126,1,0,0,0,695,696,5,108,0,0,696,697,5,105,0,
|
||||
0,697,698,5,115,0,0,698,699,5,116,0,0,699,128,1,0,0,0,700,701,5,
|
||||
98,0,0,701,702,5,111,0,0,702,703,5,111,0,0,703,704,5,108,0,0,704,
|
||||
130,1,0,0,0,705,706,5,98,0,0,706,707,5,121,0,0,707,708,5,116,0,0,
|
||||
708,709,5,101,0,0,709,710,5,115,0,0,710,132,1,0,0,0,711,712,5,100,
|
||||
0,0,712,713,5,111,0,0,713,714,5,117,0,0,714,715,5,98,0,0,715,716,
|
||||
5,108,0,0,716,717,5,101,0,0,717,134,1,0,0,0,718,719,5,105,0,0,719,
|
||||
720,5,110,0,0,720,721,5,116,0,0,721,722,5,51,0,0,722,723,5,50,0,
|
||||
0,723,136,1,0,0,0,724,725,5,105,0,0,725,726,5,110,0,0,726,727,5,
|
||||
116,0,0,727,728,5,54,0,0,728,729,5,52,0,0,729,138,1,0,0,0,730,731,
|
||||
5,115,0,0,731,732,5,116,0,0,732,733,5,114,0,0,733,734,5,105,0,0,
|
||||
734,735,5,110,0,0,735,736,5,103,0,0,736,140,1,0,0,0,737,738,5,117,
|
||||
0,0,738,739,5,105,0,0,739,740,5,110,0,0,740,741,5,116,0,0,741,742,
|
||||
5,51,0,0,742,743,5,50,0,0,743,142,1,0,0,0,744,745,5,117,0,0,745,
|
||||
746,5,105,0,0,746,747,5,110,0,0,747,748,5,116,0,0,748,749,5,54,0,
|
||||
0,749,750,5,52,0,0,750,144,1,0,0,0,751,752,5,116,0,0,752,753,5,114,
|
||||
0,0,753,754,5,117,0,0,754,755,5,101,0,0,755,146,1,0,0,0,756,757,
|
||||
5,102,0,0,757,758,5,97,0,0,758,759,5,108,0,0,759,760,5,115,0,0,760,
|
||||
761,5,101,0,0,761,148,1,0,0,0,762,763,5,110,0,0,763,764,5,117,0,
|
||||
0,764,765,5,108,0,0,765,766,5,108,0,0,766,150,1,0,0,0,767,768,5,
|
||||
45,0,0,768,769,5,62,0,0,769,152,1,0,0,0,770,771,5,58,0,0,771,154,
|
||||
1,0,0,0,772,773,5,59,0,0,773,156,1,0,0,0,774,775,5,44,0,0,775,158,
|
||||
1,0,0,0,776,777,5,46,0,0,777,160,1,0,0,0,778,779,5,123,0,0,779,162,
|
||||
1,0,0,0,780,781,5,125,0,0,781,164,1,0,0,0,782,783,5,91,0,0,783,166,
|
||||
1,0,0,0,784,785,5,93,0,0,785,168,1,0,0,0,786,787,5,40,0,0,787,170,
|
||||
1,0,0,0,788,789,5,41,0,0,789,172,1,0,0,0,790,791,5,60,0,0,791,174,
|
||||
1,0,0,0,792,793,5,62,0,0,793,176,1,0,0,0,794,796,5,45,0,0,795,794,
|
||||
1,0,0,0,795,796,1,0,0,0,796,798,1,0,0,0,797,799,7,0,0,0,798,797,
|
||||
1,0,0,0,799,800,1,0,0,0,800,798,1,0,0,0,800,801,1,0,0,0,801,178,
|
||||
1,0,0,0,802,804,5,45,0,0,803,802,1,0,0,0,803,804,1,0,0,0,804,813,
|
||||
1,0,0,0,805,814,5,48,0,0,806,810,7,1,0,0,807,809,7,0,0,0,808,807,
|
||||
1,0,0,0,809,812,1,0,0,0,810,808,1,0,0,0,810,811,1,0,0,0,811,814,
|
||||
1,0,0,0,812,810,1,0,0,0,813,805,1,0,0,0,813,806,1,0,0,0,814,821,
|
||||
1,0,0,0,815,817,5,46,0,0,816,818,7,0,0,0,817,816,1,0,0,0,818,819,
|
||||
1,0,0,0,819,817,1,0,0,0,819,820,1,0,0,0,820,822,1,0,0,0,821,815,
|
||||
1,0,0,0,821,822,1,0,0,0,822,832,1,0,0,0,823,825,7,2,0,0,824,826,
|
||||
7,3,0,0,825,824,1,0,0,0,825,826,1,0,0,0,826,828,1,0,0,0,827,829,
|
||||
7,0,0,0,828,827,1,0,0,0,829,830,1,0,0,0,830,828,1,0,0,0,830,831,
|
||||
1,0,0,0,831,833,1,0,0,0,832,823,1,0,0,0,832,833,1,0,0,0,833,180,
|
||||
1,0,0,0,834,838,7,4,0,0,835,837,7,5,0,0,836,835,1,0,0,0,837,840,
|
||||
1,0,0,0,838,836,1,0,0,0,838,839,1,0,0,0,839,182,1,0,0,0,840,838,
|
||||
1,0,0,0,841,846,5,34,0,0,842,845,3,185,92,0,843,845,8,6,0,0,844,
|
||||
842,1,0,0,0,844,843,1,0,0,0,845,848,1,0,0,0,846,844,1,0,0,0,846,
|
||||
847,1,0,0,0,847,849,1,0,0,0,848,846,1,0,0,0,849,850,5,34,0,0,850,
|
||||
184,1,0,0,0,851,859,5,92,0,0,852,860,7,7,0,0,853,854,5,117,0,0,854,
|
||||
855,3,187,93,0,855,856,3,187,93,0,856,857,3,187,93,0,857,858,3,187,
|
||||
93,0,858,860,1,0,0,0,859,852,1,0,0,0,859,853,1,0,0,0,860,186,1,0,
|
||||
0,0,861,862,7,8,0,0,862,188,1,0,0,0,863,864,5,47,0,0,864,865,5,47,
|
||||
0,0,865,869,1,0,0,0,866,868,8,9,0,0,867,866,1,0,0,0,868,871,1,0,
|
||||
0,0,869,867,1,0,0,0,869,870,1,0,0,0,870,872,1,0,0,0,871,869,1,0,
|
||||
0,0,872,873,6,94,0,0,873,190,1,0,0,0,874,875,5,47,0,0,875,876,5,
|
||||
42,0,0,876,880,1,0,0,0,877,879,9,0,0,0,878,877,1,0,0,0,879,882,1,
|
||||
0,0,0,880,881,1,0,0,0,880,878,1,0,0,0,881,883,1,0,0,0,882,880,1,
|
||||
0,0,0,883,884,5,42,0,0,884,885,5,47,0,0,885,886,1,0,0,0,886,887,
|
||||
6,95,0,0,887,192,1,0,0,0,888,890,7,10,0,0,889,888,1,0,0,0,890,891,
|
||||
1,0,0,0,891,889,1,0,0,0,891,892,1,0,0,0,892,893,1,0,0,0,893,894,
|
||||
6,96,0,0,894,194,1,0,0,0,18,0,795,800,803,810,813,819,821,825,830,
|
||||
832,838,844,846,859,869,880,891,1,6,0,0
|
||||
91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,
|
||||
97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,1,0,1,0,1,0,1,0,1,
|
||||
0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,
|
||||
2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,
|
||||
4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,
|
||||
6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,
|
||||
7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,
|
||||
9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,
|
||||
10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,
|
||||
12,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,
|
||||
15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,
|
||||
17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,
|
||||
19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,
|
||||
21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,
|
||||
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,25,1,25,1,
|
||||
25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,
|
||||
27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,
|
||||
29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,
|
||||
30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,
|
||||
32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,35,1,
|
||||
35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,
|
||||
37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,
|
||||
38,1,38,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,
|
||||
41,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,
|
||||
44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,
|
||||
46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,
|
||||
48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,
|
||||
49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,
|
||||
51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,
|
||||
52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,
|
||||
53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,
|
||||
54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,
|
||||
55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,
|
||||
56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,
|
||||
57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,
|
||||
59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,
|
||||
60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,
|
||||
62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,
|
||||
63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,
|
||||
65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,
|
||||
66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,
|
||||
67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,
|
||||
69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,
|
||||
71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,
|
||||
73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,
|
||||
75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,
|
||||
77,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,80,1,
|
||||
80,1,80,1,81,1,81,1,82,1,82,1,83,1,83,1,84,1,84,1,85,1,85,1,86,1,
|
||||
86,1,87,1,87,1,88,1,88,1,89,1,89,1,90,1,90,1,91,1,91,1,92,1,92,1,
|
||||
93,3,93,838,8,93,1,93,4,93,841,8,93,11,93,12,93,842,1,94,3,94,846,
|
||||
8,94,1,94,1,94,1,94,5,94,851,8,94,10,94,12,94,854,9,94,3,94,856,
|
||||
8,94,1,94,1,94,4,94,860,8,94,11,94,12,94,861,3,94,864,8,94,1,94,
|
||||
1,94,3,94,868,8,94,1,94,4,94,871,8,94,11,94,12,94,872,3,94,875,8,
|
||||
94,1,95,1,95,5,95,879,8,95,10,95,12,95,882,9,95,1,96,1,96,1,96,5,
|
||||
96,887,8,96,10,96,12,96,890,9,96,1,96,1,96,1,97,1,97,1,97,1,97,1,
|
||||
97,1,97,1,97,1,97,3,97,902,8,97,1,98,1,98,1,99,1,99,1,99,1,99,5,
|
||||
99,910,8,99,10,99,12,99,913,9,99,1,99,1,99,1,100,1,100,1,100,1,100,
|
||||
5,100,921,8,100,10,100,12,100,924,9,100,1,100,1,100,1,100,1,100,
|
||||
1,100,1,101,4,101,932,8,101,11,101,12,101,933,1,101,1,101,1,922,
|
||||
0,102,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,
|
||||
25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,
|
||||
47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,
|
||||
69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,
|
||||
91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,
|
||||
111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,
|
||||
65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,
|
||||
149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,
|
||||
84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,
|
||||
187,94,189,95,191,96,193,97,195,0,197,0,199,98,201,99,203,100,1,
|
||||
0,11,1,0,48,57,1,0,49,57,2,0,69,69,101,101,2,0,43,43,45,45,3,0,65,
|
||||
90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,4,0,10,10,13,13,34,
|
||||
34,92,92,8,0,34,34,47,47,92,92,98,98,102,102,110,110,114,114,116,
|
||||
116,3,0,48,57,65,70,97,102,2,0,10,10,13,13,3,0,9,10,13,13,32,32,
|
||||
951,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,
|
||||
0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,
|
||||
0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,
|
||||
0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,
|
||||
0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,
|
||||
0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,
|
||||
0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,
|
||||
0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,
|
||||
0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,
|
||||
0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,
|
||||
0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,
|
||||
0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,
|
||||
119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,
|
||||
0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,
|
||||
1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,
|
||||
0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,
|
||||
0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,
|
||||
165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,
|
||||
0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,
|
||||
1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,
|
||||
0,193,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,1,205,1,
|
||||
0,0,0,3,215,1,0,0,0,5,220,1,0,0,0,7,230,1,0,0,0,9,241,1,0,0,0,11,
|
||||
249,1,0,0,0,13,255,1,0,0,0,15,264,1,0,0,0,17,274,1,0,0,0,19,283,
|
||||
1,0,0,0,21,295,1,0,0,0,23,306,1,0,0,0,25,314,1,0,0,0,27,317,1,0,
|
||||
0,0,29,322,1,0,0,0,31,325,1,0,0,0,33,333,1,0,0,0,35,340,1,0,0,0,
|
||||
37,346,1,0,0,0,39,351,1,0,0,0,41,362,1,0,0,0,43,367,1,0,0,0,45,373,
|
||||
1,0,0,0,47,377,1,0,0,0,49,389,1,0,0,0,51,392,1,0,0,0,53,399,1,0,
|
||||
0,0,55,402,1,0,0,0,57,409,1,0,0,0,59,417,1,0,0,0,61,424,1,0,0,0,
|
||||
63,435,1,0,0,0,65,442,1,0,0,0,67,451,1,0,0,0,69,454,1,0,0,0,71,458,
|
||||
1,0,0,0,73,463,1,0,0,0,75,469,1,0,0,0,77,478,1,0,0,0,79,487,1,0,
|
||||
0,0,81,491,1,0,0,0,83,495,1,0,0,0,85,499,1,0,0,0,87,505,1,0,0,0,
|
||||
89,511,1,0,0,0,91,516,1,0,0,0,93,521,1,0,0,0,95,527,1,0,0,0,97,535,
|
||||
1,0,0,0,99,543,1,0,0,0,101,554,1,0,0,0,103,559,1,0,0,0,105,571,1,
|
||||
0,0,0,107,582,1,0,0,0,109,592,1,0,0,0,111,604,1,0,0,0,113,624,1,
|
||||
0,0,0,115,629,1,0,0,0,117,642,1,0,0,0,119,654,1,0,0,0,121,666,1,
|
||||
0,0,0,123,671,1,0,0,0,125,679,1,0,0,0,127,684,1,0,0,0,129,697,1,
|
||||
0,0,0,131,705,1,0,0,0,133,714,1,0,0,0,135,728,1,0,0,0,137,737,1,
|
||||
0,0,0,139,742,1,0,0,0,141,747,1,0,0,0,143,753,1,0,0,0,145,760,1,
|
||||
0,0,0,147,766,1,0,0,0,149,772,1,0,0,0,151,779,1,0,0,0,153,786,1,
|
||||
0,0,0,155,793,1,0,0,0,157,798,1,0,0,0,159,804,1,0,0,0,161,809,1,
|
||||
0,0,0,163,812,1,0,0,0,165,814,1,0,0,0,167,816,1,0,0,0,169,818,1,
|
||||
0,0,0,171,820,1,0,0,0,173,822,1,0,0,0,175,824,1,0,0,0,177,826,1,
|
||||
0,0,0,179,828,1,0,0,0,181,830,1,0,0,0,183,832,1,0,0,0,185,834,1,
|
||||
0,0,0,187,837,1,0,0,0,189,845,1,0,0,0,191,876,1,0,0,0,193,883,1,
|
||||
0,0,0,195,893,1,0,0,0,197,903,1,0,0,0,199,905,1,0,0,0,201,916,1,
|
||||
0,0,0,203,931,1,0,0,0,205,206,5,119,0,0,206,207,5,111,0,0,207,208,
|
||||
5,114,0,0,208,209,5,107,0,0,209,210,5,115,0,0,210,211,5,112,0,0,
|
||||
211,212,5,97,0,0,212,213,5,99,0,0,213,214,5,101,0,0,214,2,1,0,0,
|
||||
0,215,216,5,97,0,0,216,217,5,116,0,0,217,218,5,111,0,0,218,219,5,
|
||||
109,0,0,219,4,1,0,0,0,220,221,5,105,0,0,221,222,5,110,0,0,222,223,
|
||||
5,116,0,0,223,224,5,101,0,0,224,225,5,114,0,0,225,226,5,102,0,0,
|
||||
226,227,5,97,0,0,227,228,5,99,0,0,228,229,5,101,0,0,229,6,1,0,0,
|
||||
0,230,231,5,105,0,0,231,232,5,110,0,0,232,233,5,116,0,0,233,234,
|
||||
5,101,0,0,234,235,5,114,0,0,235,236,5,102,0,0,236,237,5,97,0,0,237,
|
||||
238,5,99,0,0,238,239,5,101,0,0,239,240,5,115,0,0,240,8,1,0,0,0,241,
|
||||
242,5,112,0,0,242,243,5,97,0,0,243,244,5,99,0,0,244,245,5,107,0,
|
||||
0,245,246,5,97,0,0,246,247,5,103,0,0,247,248,5,101,0,0,248,10,1,
|
||||
0,0,0,249,250,5,118,0,0,250,251,5,97,0,0,251,252,5,108,0,0,252,253,
|
||||
5,117,0,0,253,254,5,101,0,0,254,12,1,0,0,0,255,256,5,114,0,0,256,
|
||||
257,5,101,0,0,257,258,5,108,0,0,258,259,5,97,0,0,259,260,5,116,0,
|
||||
0,260,261,5,105,0,0,261,262,5,111,0,0,262,263,5,110,0,0,263,14,1,
|
||||
0,0,0,264,265,5,111,0,0,265,266,5,112,0,0,266,267,5,101,0,0,267,
|
||||
268,5,114,0,0,268,269,5,97,0,0,269,270,5,116,0,0,270,271,5,105,0,
|
||||
0,271,272,5,111,0,0,272,273,5,110,0,0,273,16,1,0,0,0,274,275,5,102,
|
||||
0,0,275,276,5,117,0,0,276,277,5,110,0,0,277,278,5,99,0,0,278,279,
|
||||
5,116,0,0,279,280,5,105,0,0,280,281,5,111,0,0,281,282,5,110,0,0,
|
||||
282,18,1,0,0,0,283,284,5,99,0,0,284,285,5,111,0,0,285,286,5,110,
|
||||
0,0,286,287,5,115,0,0,287,288,5,116,0,0,288,289,5,114,0,0,289,290,
|
||||
5,117,0,0,290,291,5,99,0,0,291,292,5,116,0,0,292,293,5,111,0,0,293,
|
||||
294,5,114,0,0,294,20,1,0,0,0,295,296,5,99,0,0,296,297,5,111,0,0,
|
||||
297,298,5,110,0,0,298,299,5,115,0,0,299,300,5,116,0,0,300,301,5,
|
||||
114,0,0,301,302,5,117,0,0,302,303,5,99,0,0,303,304,5,116,0,0,304,
|
||||
305,5,115,0,0,305,22,1,0,0,0,306,307,5,99,0,0,307,308,5,111,0,0,
|
||||
308,309,5,110,0,0,309,310,5,102,0,0,310,311,5,111,0,0,311,312,5,
|
||||
114,0,0,312,313,5,109,0,0,313,24,1,0,0,0,314,315,5,97,0,0,315,316,
|
||||
5,115,0,0,316,26,1,0,0,0,317,318,5,98,0,0,318,319,5,105,0,0,319,
|
||||
320,5,110,0,0,320,321,5,100,0,0,321,28,1,0,0,0,322,323,5,116,0,0,
|
||||
323,324,5,111,0,0,324,30,1,0,0,0,325,326,5,112,0,0,326,327,5,114,
|
||||
0,0,327,328,5,105,0,0,328,329,5,118,0,0,329,330,5,97,0,0,330,331,
|
||||
5,116,0,0,331,332,5,101,0,0,332,32,1,0,0,0,333,334,5,115,0,0,334,
|
||||
335,5,104,0,0,335,336,5,97,0,0,336,337,5,114,0,0,337,338,5,101,0,
|
||||
0,338,339,5,100,0,0,339,34,1,0,0,0,340,341,5,115,0,0,341,342,5,116,
|
||||
0,0,342,343,5,97,0,0,343,344,5,116,0,0,344,345,5,101,0,0,345,36,
|
||||
1,0,0,0,346,347,5,101,0,0,347,348,5,100,0,0,348,349,5,103,0,0,349,
|
||||
350,5,101,0,0,350,38,1,0,0,0,351,352,5,112,0,0,352,353,5,114,0,0,
|
||||
353,354,5,111,0,0,354,355,5,106,0,0,355,356,5,101,0,0,356,357,5,
|
||||
99,0,0,357,358,5,116,0,0,358,359,5,105,0,0,359,360,5,111,0,0,360,
|
||||
361,5,110,0,0,361,40,1,0,0,0,362,363,5,119,0,0,363,364,5,105,0,0,
|
||||
364,365,5,116,0,0,365,366,5,104,0,0,366,42,1,0,0,0,367,368,5,117,
|
||||
0,0,368,369,5,115,0,0,369,370,5,105,0,0,370,371,5,110,0,0,371,372,
|
||||
5,103,0,0,372,44,1,0,0,0,373,374,5,118,0,0,374,375,5,105,0,0,375,
|
||||
376,5,97,0,0,376,46,1,0,0,0,377,378,5,109,0,0,378,379,5,97,0,0,379,
|
||||
380,5,116,0,0,380,381,5,101,0,0,381,382,5,114,0,0,382,383,5,105,
|
||||
0,0,383,384,5,97,0,0,384,385,5,108,0,0,385,386,5,105,0,0,386,387,
|
||||
5,122,0,0,387,388,5,101,0,0,388,48,1,0,0,0,389,390,5,105,0,0,390,
|
||||
391,5,102,0,0,391,50,1,0,0,0,392,393,5,97,0,0,393,394,5,98,0,0,394,
|
||||
395,5,115,0,0,395,396,5,101,0,0,396,397,5,110,0,0,397,398,5,116,
|
||||
0,0,398,52,1,0,0,0,399,400,5,111,0,0,400,401,5,110,0,0,401,54,1,
|
||||
0,0,0,402,403,5,112,0,0,403,404,5,111,0,0,404,405,5,108,0,0,405,
|
||||
406,5,105,0,0,406,407,5,99,0,0,407,408,5,121,0,0,408,56,1,0,0,0,
|
||||
409,410,5,100,0,0,410,411,5,101,0,0,411,412,5,102,0,0,412,413,5,
|
||||
97,0,0,413,414,5,117,0,0,414,415,5,108,0,0,415,416,5,116,0,0,416,
|
||||
58,1,0,0,0,417,418,5,115,0,0,418,419,5,111,0,0,419,420,5,117,0,0,
|
||||
420,421,5,114,0,0,421,422,5,99,0,0,422,423,5,101,0,0,423,60,1,0,
|
||||
0,0,424,425,5,114,0,0,425,426,5,101,0,0,426,427,5,112,0,0,427,428,
|
||||
5,111,0,0,428,429,5,115,0,0,429,430,5,105,0,0,430,431,5,116,0,0,
|
||||
431,432,5,111,0,0,432,433,5,114,0,0,433,434,5,121,0,0,434,62,1,0,
|
||||
0,0,435,436,5,99,0,0,436,437,5,111,0,0,437,438,5,109,0,0,438,439,
|
||||
5,109,0,0,439,440,5,105,0,0,440,441,5,116,0,0,441,64,1,0,0,0,442,
|
||||
443,5,114,0,0,443,444,5,101,0,0,444,445,5,118,0,0,445,446,5,105,
|
||||
0,0,446,447,5,115,0,0,447,448,5,105,0,0,448,449,5,111,0,0,449,450,
|
||||
5,110,0,0,450,66,1,0,0,0,451,452,5,105,0,0,452,453,5,100,0,0,453,
|
||||
68,1,0,0,0,454,455,5,100,0,0,455,456,5,111,0,0,456,457,5,99,0,0,
|
||||
457,70,1,0,0,0,458,459,5,109,0,0,459,460,5,111,0,0,460,461,5,100,
|
||||
0,0,461,462,5,101,0,0,462,72,1,0,0,0,463,464,5,101,0,0,464,465,5,
|
||||
109,0,0,465,466,5,105,0,0,466,467,5,116,0,0,467,468,5,115,0,0,468,
|
||||
74,1,0,0,0,469,470,5,114,0,0,470,471,5,101,0,0,471,472,5,99,0,0,
|
||||
472,473,5,101,0,0,473,474,5,105,0,0,474,475,5,118,0,0,475,476,5,
|
||||
101,0,0,476,477,5,114,0,0,477,76,1,0,0,0,478,479,5,114,0,0,479,480,
|
||||
5,101,0,0,480,481,5,113,0,0,481,482,5,117,0,0,482,483,5,105,0,0,
|
||||
483,484,5,114,0,0,484,485,5,101,0,0,485,486,5,115,0,0,486,78,1,0,
|
||||
0,0,487,488,5,97,0,0,488,489,5,110,0,0,489,490,5,121,0,0,490,80,
|
||||
1,0,0,0,491,492,5,103,0,0,492,493,5,101,0,0,493,494,5,116,0,0,494,
|
||||
82,1,0,0,0,495,496,5,115,0,0,496,497,5,101,0,0,497,498,5,116,0,0,
|
||||
498,84,1,0,0,0,499,500,5,119,0,0,500,501,5,97,0,0,501,502,5,116,
|
||||
0,0,502,503,5,99,0,0,503,504,5,104,0,0,504,86,1,0,0,0,505,506,5,
|
||||
115,0,0,506,507,5,116,0,0,507,508,5,97,0,0,508,509,5,114,0,0,509,
|
||||
510,5,116,0,0,510,88,1,0,0,0,511,512,5,115,0,0,512,513,5,116,0,0,
|
||||
513,514,5,111,0,0,514,515,5,112,0,0,515,90,1,0,0,0,516,517,5,114,
|
||||
0,0,517,518,5,101,0,0,518,519,5,97,0,0,519,520,5,100,0,0,520,92,
|
||||
1,0,0,0,521,522,5,119,0,0,522,523,5,114,0,0,523,524,5,105,0,0,524,
|
||||
525,5,116,0,0,525,526,5,101,0,0,526,94,1,0,0,0,527,528,5,114,0,0,
|
||||
528,529,5,101,0,0,529,530,5,115,0,0,530,531,5,111,0,0,531,532,5,
|
||||
108,0,0,532,533,5,118,0,0,533,534,5,101,0,0,534,96,1,0,0,0,535,536,
|
||||
5,99,0,0,536,537,5,111,0,0,537,538,5,110,0,0,538,539,5,110,0,0,539,
|
||||
540,5,101,0,0,540,541,5,99,0,0,541,542,5,116,0,0,542,98,1,0,0,0,
|
||||
543,544,5,100,0,0,544,545,5,105,0,0,545,546,5,115,0,0,546,547,5,
|
||||
99,0,0,547,548,5,111,0,0,548,549,5,110,0,0,549,550,5,110,0,0,550,
|
||||
551,5,101,0,0,551,552,5,99,0,0,552,553,5,116,0,0,553,100,1,0,0,0,
|
||||
554,555,5,99,0,0,555,556,5,97,0,0,556,557,5,108,0,0,557,558,5,108,
|
||||
0,0,558,102,1,0,0,0,559,560,5,119,0,0,560,561,5,97,0,0,561,562,5,
|
||||
116,0,0,562,563,5,99,0,0,563,564,5,104,0,0,564,565,5,45,0,0,565,
|
||||
566,5,115,0,0,566,567,5,116,0,0,567,568,5,97,0,0,568,569,5,114,0,
|
||||
0,569,570,5,116,0,0,570,104,1,0,0,0,571,572,5,119,0,0,572,573,5,
|
||||
97,0,0,573,574,5,116,0,0,574,575,5,99,0,0,575,576,5,104,0,0,576,
|
||||
577,5,45,0,0,577,578,5,115,0,0,578,579,5,116,0,0,579,580,5,111,0,
|
||||
0,580,581,5,112,0,0,581,106,1,0,0,0,582,583,5,115,0,0,583,584,5,
|
||||
117,0,0,584,585,5,98,0,0,585,586,5,115,0,0,586,587,5,99,0,0,587,
|
||||
588,5,114,0,0,588,589,5,105,0,0,589,590,5,98,0,0,590,591,5,101,0,
|
||||
0,591,108,1,0,0,0,592,593,5,117,0,0,593,594,5,110,0,0,594,595,5,
|
||||
115,0,0,595,596,5,117,0,0,596,597,5,98,0,0,597,598,5,115,0,0,598,
|
||||
599,5,99,0,0,599,600,5,114,0,0,600,601,5,105,0,0,601,602,5,98,0,
|
||||
0,602,603,5,101,0,0,603,110,1,0,0,0,604,605,5,111,0,0,605,606,5,
|
||||
112,0,0,606,607,5,116,0,0,607,608,5,105,0,0,608,609,5,109,0,0,609,
|
||||
610,5,105,0,0,610,611,5,115,0,0,611,612,5,116,0,0,612,613,5,105,
|
||||
0,0,613,614,5,99,0,0,614,615,5,45,0,0,615,616,5,114,0,0,616,617,
|
||||
5,101,0,0,617,618,5,103,0,0,618,619,5,105,0,0,619,620,5,115,0,0,
|
||||
620,621,5,116,0,0,621,622,5,101,0,0,622,623,5,114,0,0,623,112,1,
|
||||
0,0,0,624,625,5,99,0,0,625,626,5,114,0,0,626,627,5,100,0,0,627,628,
|
||||
5,116,0,0,628,114,1,0,0,0,629,630,5,111,0,0,630,631,5,112,0,0,631,
|
||||
632,5,116,0,0,632,633,5,105,0,0,633,634,5,111,0,0,634,635,5,110,
|
||||
0,0,635,636,5,97,0,0,636,637,5,108,0,0,637,638,5,45,0,0,638,639,
|
||||
5,111,0,0,639,640,5,110,0,0,640,641,5,101,0,0,641,116,1,0,0,0,642,
|
||||
643,5,101,0,0,643,644,5,120,0,0,644,645,5,97,0,0,645,646,5,99,0,
|
||||
0,646,647,5,116,0,0,647,648,5,108,0,0,648,649,5,121,0,0,649,650,
|
||||
5,45,0,0,650,651,5,111,0,0,651,652,5,110,0,0,652,653,5,101,0,0,653,
|
||||
118,1,0,0,0,654,655,5,109,0,0,655,656,5,97,0,0,656,657,5,110,0,0,
|
||||
657,658,5,121,0,0,658,659,5,45,0,0,659,660,5,117,0,0,660,661,5,110,
|
||||
0,0,661,662,5,105,0,0,662,663,5,113,0,0,663,664,5,117,0,0,664,665,
|
||||
5,101,0,0,665,120,1,0,0,0,666,667,5,109,0,0,667,668,5,97,0,0,668,
|
||||
669,5,110,0,0,669,670,5,121,0,0,670,122,1,0,0,0,671,672,5,111,0,
|
||||
0,672,673,5,114,0,0,673,674,5,100,0,0,674,675,5,101,0,0,675,676,
|
||||
5,114,0,0,676,677,5,101,0,0,677,678,5,100,0,0,678,124,1,0,0,0,679,
|
||||
680,5,117,0,0,680,681,5,110,0,0,681,682,5,105,0,0,682,683,5,116,
|
||||
0,0,683,126,1,0,0,0,684,685,5,119,0,0,685,686,5,97,0,0,686,687,5,
|
||||
116,0,0,687,688,5,99,0,0,688,689,5,104,0,0,689,690,5,45,0,0,690,
|
||||
691,5,104,0,0,691,692,5,97,0,0,692,693,5,110,0,0,693,694,5,100,0,
|
||||
0,694,695,5,108,0,0,695,696,5,101,0,0,696,128,1,0,0,0,697,698,5,
|
||||
109,0,0,698,699,5,101,0,0,699,700,5,115,0,0,700,701,5,115,0,0,701,
|
||||
702,5,97,0,0,702,703,5,103,0,0,703,704,5,101,0,0,704,130,1,0,0,0,
|
||||
705,706,5,97,0,0,706,707,5,116,0,0,707,708,5,111,0,0,708,709,5,109,
|
||||
0,0,709,710,5,45,0,0,710,711,5,114,0,0,711,712,5,101,0,0,712,713,
|
||||
5,102,0,0,713,132,1,0,0,0,714,715,5,105,0,0,715,716,5,110,0,0,716,
|
||||
717,5,116,0,0,717,718,5,101,0,0,718,719,5,114,0,0,719,720,5,102,
|
||||
0,0,720,721,5,97,0,0,721,722,5,99,0,0,722,723,5,101,0,0,723,724,
|
||||
5,45,0,0,724,725,5,114,0,0,725,726,5,101,0,0,726,727,5,102,0,0,727,
|
||||
134,1,0,0,0,728,729,5,111,0,0,729,730,5,112,0,0,730,731,5,116,0,
|
||||
0,731,732,5,105,0,0,732,733,5,111,0,0,733,734,5,110,0,0,734,735,
|
||||
5,97,0,0,735,736,5,108,0,0,736,136,1,0,0,0,737,738,5,108,0,0,738,
|
||||
739,5,105,0,0,739,740,5,115,0,0,740,741,5,116,0,0,741,138,1,0,0,
|
||||
0,742,743,5,98,0,0,743,744,5,111,0,0,744,745,5,111,0,0,745,746,5,
|
||||
108,0,0,746,140,1,0,0,0,747,748,5,98,0,0,748,749,5,121,0,0,749,750,
|
||||
5,116,0,0,750,751,5,101,0,0,751,752,5,115,0,0,752,142,1,0,0,0,753,
|
||||
754,5,100,0,0,754,755,5,111,0,0,755,756,5,117,0,0,756,757,5,98,0,
|
||||
0,757,758,5,108,0,0,758,759,5,101,0,0,759,144,1,0,0,0,760,761,5,
|
||||
105,0,0,761,762,5,110,0,0,762,763,5,116,0,0,763,764,5,51,0,0,764,
|
||||
765,5,50,0,0,765,146,1,0,0,0,766,767,5,105,0,0,767,768,5,110,0,0,
|
||||
768,769,5,116,0,0,769,770,5,54,0,0,770,771,5,52,0,0,771,148,1,0,
|
||||
0,0,772,773,5,115,0,0,773,774,5,116,0,0,774,775,5,114,0,0,775,776,
|
||||
5,105,0,0,776,777,5,110,0,0,777,778,5,103,0,0,778,150,1,0,0,0,779,
|
||||
780,5,117,0,0,780,781,5,105,0,0,781,782,5,110,0,0,782,783,5,116,
|
||||
0,0,783,784,5,51,0,0,784,785,5,50,0,0,785,152,1,0,0,0,786,787,5,
|
||||
117,0,0,787,788,5,105,0,0,788,789,5,110,0,0,789,790,5,116,0,0,790,
|
||||
791,5,54,0,0,791,792,5,52,0,0,792,154,1,0,0,0,793,794,5,116,0,0,
|
||||
794,795,5,114,0,0,795,796,5,117,0,0,796,797,5,101,0,0,797,156,1,
|
||||
0,0,0,798,799,5,102,0,0,799,800,5,97,0,0,800,801,5,108,0,0,801,802,
|
||||
5,115,0,0,802,803,5,101,0,0,803,158,1,0,0,0,804,805,5,110,0,0,805,
|
||||
806,5,117,0,0,806,807,5,108,0,0,807,808,5,108,0,0,808,160,1,0,0,
|
||||
0,809,810,5,45,0,0,810,811,5,62,0,0,811,162,1,0,0,0,812,813,5,58,
|
||||
0,0,813,164,1,0,0,0,814,815,5,59,0,0,815,166,1,0,0,0,816,817,5,44,
|
||||
0,0,817,168,1,0,0,0,818,819,5,46,0,0,819,170,1,0,0,0,820,821,5,123,
|
||||
0,0,821,172,1,0,0,0,822,823,5,125,0,0,823,174,1,0,0,0,824,825,5,
|
||||
91,0,0,825,176,1,0,0,0,826,827,5,93,0,0,827,178,1,0,0,0,828,829,
|
||||
5,40,0,0,829,180,1,0,0,0,830,831,5,41,0,0,831,182,1,0,0,0,832,833,
|
||||
5,60,0,0,833,184,1,0,0,0,834,835,5,62,0,0,835,186,1,0,0,0,836,838,
|
||||
5,45,0,0,837,836,1,0,0,0,837,838,1,0,0,0,838,840,1,0,0,0,839,841,
|
||||
7,0,0,0,840,839,1,0,0,0,841,842,1,0,0,0,842,840,1,0,0,0,842,843,
|
||||
1,0,0,0,843,188,1,0,0,0,844,846,5,45,0,0,845,844,1,0,0,0,845,846,
|
||||
1,0,0,0,846,855,1,0,0,0,847,856,5,48,0,0,848,852,7,1,0,0,849,851,
|
||||
7,0,0,0,850,849,1,0,0,0,851,854,1,0,0,0,852,850,1,0,0,0,852,853,
|
||||
1,0,0,0,853,856,1,0,0,0,854,852,1,0,0,0,855,847,1,0,0,0,855,848,
|
||||
1,0,0,0,856,863,1,0,0,0,857,859,5,46,0,0,858,860,7,0,0,0,859,858,
|
||||
1,0,0,0,860,861,1,0,0,0,861,859,1,0,0,0,861,862,1,0,0,0,862,864,
|
||||
1,0,0,0,863,857,1,0,0,0,863,864,1,0,0,0,864,874,1,0,0,0,865,867,
|
||||
7,2,0,0,866,868,7,3,0,0,867,866,1,0,0,0,867,868,1,0,0,0,868,870,
|
||||
1,0,0,0,869,871,7,0,0,0,870,869,1,0,0,0,871,872,1,0,0,0,872,870,
|
||||
1,0,0,0,872,873,1,0,0,0,873,875,1,0,0,0,874,865,1,0,0,0,874,875,
|
||||
1,0,0,0,875,190,1,0,0,0,876,880,7,4,0,0,877,879,7,5,0,0,878,877,
|
||||
1,0,0,0,879,882,1,0,0,0,880,878,1,0,0,0,880,881,1,0,0,0,881,192,
|
||||
1,0,0,0,882,880,1,0,0,0,883,888,5,34,0,0,884,887,3,195,97,0,885,
|
||||
887,8,6,0,0,886,884,1,0,0,0,886,885,1,0,0,0,887,890,1,0,0,0,888,
|
||||
886,1,0,0,0,888,889,1,0,0,0,889,891,1,0,0,0,890,888,1,0,0,0,891,
|
||||
892,5,34,0,0,892,194,1,0,0,0,893,901,5,92,0,0,894,902,7,7,0,0,895,
|
||||
896,5,117,0,0,896,897,3,197,98,0,897,898,3,197,98,0,898,899,3,197,
|
||||
98,0,899,900,3,197,98,0,900,902,1,0,0,0,901,894,1,0,0,0,901,895,
|
||||
1,0,0,0,902,196,1,0,0,0,903,904,7,8,0,0,904,198,1,0,0,0,905,906,
|
||||
5,47,0,0,906,907,5,47,0,0,907,911,1,0,0,0,908,910,8,9,0,0,909,908,
|
||||
1,0,0,0,910,913,1,0,0,0,911,909,1,0,0,0,911,912,1,0,0,0,912,914,
|
||||
1,0,0,0,913,911,1,0,0,0,914,915,6,99,0,0,915,200,1,0,0,0,916,917,
|
||||
5,47,0,0,917,918,5,42,0,0,918,922,1,0,0,0,919,921,9,0,0,0,920,919,
|
||||
1,0,0,0,921,924,1,0,0,0,922,923,1,0,0,0,922,920,1,0,0,0,923,925,
|
||||
1,0,0,0,924,922,1,0,0,0,925,926,5,42,0,0,926,927,5,47,0,0,927,928,
|
||||
1,0,0,0,928,929,6,100,0,0,929,202,1,0,0,0,930,932,7,10,0,0,931,930,
|
||||
1,0,0,0,932,933,1,0,0,0,933,931,1,0,0,0,933,934,1,0,0,0,934,935,
|
||||
1,0,0,0,935,936,6,101,0,0,936,204,1,0,0,0,18,0,837,842,845,852,855,
|
||||
861,863,867,872,874,880,886,888,901,911,922,933,1,6,0,0
|
||||
];
|
||||
|
||||
private static __ATN: antlr.ATN;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -36,6 +36,7 @@ import { EdgeDeclContext } from "./QuixosCapabilityParser.js";
|
||||
import { EdgeEndpointContext } from "./QuixosCapabilityParser.js";
|
||||
import { ConformanceDeclContext } from "./QuixosCapabilityParser.js";
|
||||
import { ConformanceItemContext } from "./QuixosCapabilityParser.js";
|
||||
import { RelationshipMaterializationDeclContext } from "./QuixosCapabilityParser.js";
|
||||
import { OperationBindingDeclContext } from "./QuixosCapabilityParser.js";
|
||||
import { MemberOperationRefContext } from "./QuixosCapabilityParser.js";
|
||||
import { OperationNameContext } from "./QuixosCapabilityParser.js";
|
||||
@@ -268,6 +269,12 @@ export class QuixosCapabilityVisitor<Result> extends AbstractParseTreeVisitor<Re
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitConformanceItem?: (ctx: ConformanceItemContext) => Result;
|
||||
/**
|
||||
* Visit a parse tree produced by `QuixosCapabilityParser.relationshipMaterializationDecl`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitRelationshipMaterializationDecl?: (ctx: RelationshipMaterializationDeclContext) => Result;
|
||||
/**
|
||||
* Visit a parse tree produced by `QuixosCapabilityParser.operationBindingDecl`.
|
||||
* @param ctx the parse tree
|
||||
|
||||
@@ -22,6 +22,7 @@ import {
|
||||
type EdgeEndpoint,
|
||||
type EdgeEndpointConstraint,
|
||||
type EdgePrimitive,
|
||||
type EdgeTraversal,
|
||||
type InterfaceMember,
|
||||
type InterfaceOperation,
|
||||
type InterfaceOperationMode,
|
||||
@@ -56,6 +57,7 @@ import { QuixosCapabilityParser,
|
||||
type ValueMemberContext,
|
||||
type ValueTypeContext,
|
||||
type RelationshipMemberContext,
|
||||
type RelationshipMaterializationDeclContext,
|
||||
type WorkspaceDeclContext,
|
||||
} from "./generated/QuixosCapabilityParser.js";
|
||||
|
||||
@@ -91,6 +93,7 @@ interface InterfaceSymbol {
|
||||
members: Map<
|
||||
string,
|
||||
{
|
||||
memberId: InterfaceMember["id"];
|
||||
operations: Map<string, InterfaceOperation["id"]>;
|
||||
}
|
||||
>;
|
||||
@@ -556,6 +559,7 @@ const lowerInterface = (
|
||||
symbol.members,
|
||||
member.displayName,
|
||||
{
|
||||
memberId: member.id,
|
||||
operations: new Map(
|
||||
member.operations.map((operation) => [operation.displayName, operation.id]),
|
||||
),
|
||||
@@ -1003,6 +1007,34 @@ const lowerBoundDependencies = (
|
||||
if (!portId) {
|
||||
return [];
|
||||
}
|
||||
const traversal = (
|
||||
edgeName: string,
|
||||
projectionName: string,
|
||||
): EdgeTraversal | undefined => {
|
||||
const attachment = requireSymbol(
|
||||
state,
|
||||
state.attachments,
|
||||
edgeName,
|
||||
entry,
|
||||
"attachment",
|
||||
);
|
||||
if (!attachment || attachment.attachment.kind !== "edge") {
|
||||
if (attachment) {
|
||||
loweringIssue(state, entry, "wrong-attachment-kind", `${edgeName} is state, not an edge`);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
const projectionId = requireSymbol(
|
||||
state,
|
||||
attachment.projections,
|
||||
projectionName,
|
||||
entry,
|
||||
`projection on ${edgeName}`,
|
||||
);
|
||||
return projectionId
|
||||
? { edgeTypeId: attachment.attachment.id, projectionId }
|
||||
: undefined;
|
||||
};
|
||||
if (entry.STATE()) {
|
||||
const attachmentName = identifier(entry.identifier(1));
|
||||
const attachment = requireSymbol(
|
||||
@@ -1023,9 +1055,16 @@ const lowerBoundDependencies = (
|
||||
}
|
||||
return [];
|
||||
}
|
||||
return [{ portId, binding: { kind: "state", slotId: attachment.attachment.id } }];
|
||||
const via = entry.VIA()
|
||||
? traversal(identifier(entry.identifier(2)), identifier(entry.identifier(3)))
|
||||
: undefined;
|
||||
if (entry.VIA() && !via) return [];
|
||||
return [{
|
||||
portId,
|
||||
binding: { kind: "state", slotId: attachment.attachment.id, ...(via ? { via } : {}) },
|
||||
}];
|
||||
}
|
||||
if (entry.EDGE()) {
|
||||
if (entry.EDGE(0)) {
|
||||
const attachmentName = identifier(entry.identifier(1));
|
||||
const projectionName = identifier(entry.identifier(2));
|
||||
const attachment = requireSymbol(
|
||||
@@ -1053,6 +1092,10 @@ const lowerBoundDependencies = (
|
||||
entry,
|
||||
`projection on ${attachmentName}`,
|
||||
);
|
||||
const via = entry.VIA()
|
||||
? traversal(identifier(entry.identifier(3)), identifier(entry.identifier(4)))
|
||||
: undefined;
|
||||
if (entry.VIA() && !via) return [];
|
||||
return projectionId
|
||||
? [
|
||||
{
|
||||
@@ -1061,6 +1104,7 @@ const lowerBoundDependencies = (
|
||||
kind: "edge",
|
||||
edgeTypeId: attachment.attachment.id,
|
||||
projectionId,
|
||||
...(via ? { via } : {}),
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -1095,6 +1139,50 @@ const lowerBoundDependencies = (
|
||||
});
|
||||
};
|
||||
|
||||
const lowerRelationshipMaterialization = (
|
||||
state: LoweringState,
|
||||
interfaceName: string,
|
||||
context: RelationshipMaterializationDeclContext,
|
||||
): WorkspaceRevision["conformances"][number]["relationshipMaterializations"][number] | undefined => {
|
||||
const memberName = identifier(context.identifier(0));
|
||||
const member = requireSymbol(
|
||||
state,
|
||||
state.interfaces.get(interfaceName)?.members ?? new Map(),
|
||||
memberName,
|
||||
context,
|
||||
`member on ${interfaceName}`,
|
||||
);
|
||||
const constructorAtom = requireSymbol(
|
||||
state,
|
||||
state.atoms,
|
||||
identifier(context.identifier(1)),
|
||||
context,
|
||||
"constructor atom",
|
||||
);
|
||||
const edgeName = identifier(context.identifier(2));
|
||||
const edge = requireSymbol(state, state.attachments, edgeName, context, "attachment");
|
||||
if (edge && edge.attachment.kind !== "edge") {
|
||||
loweringIssue(state, context, "wrong-attachment-kind", `${edgeName} is state, not an edge`);
|
||||
}
|
||||
const projectionId = edge?.attachment.kind === "edge"
|
||||
? requireSymbol(
|
||||
state,
|
||||
edge.projections,
|
||||
identifier(context.identifier(3)),
|
||||
context,
|
||||
`projection on ${edgeName}`,
|
||||
)
|
||||
: undefined;
|
||||
return member && constructorAtom && edge?.attachment.kind === "edge" && projectionId
|
||||
? {
|
||||
memberId: member.memberId,
|
||||
constructorAtomId: constructorAtom,
|
||||
edgeTypeId: edge.attachment.id,
|
||||
constructedProjectionId: projectionId,
|
||||
}
|
||||
: undefined;
|
||||
};
|
||||
|
||||
const lowerConformance = (
|
||||
state: LoweringState,
|
||||
context: ConformanceDeclContext,
|
||||
@@ -1246,11 +1334,18 @@ const lowerConformance = (
|
||||
]
|
||||
: [];
|
||||
});
|
||||
const relationshipMaterializations = context.conformanceItem().flatMap((item) => {
|
||||
const materialization = item.relationshipMaterializationDecl();
|
||||
if (!materialization) return [];
|
||||
const lowered = lowerRelationshipMaterialization(state, interfaceName, materialization);
|
||||
return lowered ? [lowered] : [];
|
||||
});
|
||||
return {
|
||||
atomId,
|
||||
interfaceRevisionId: interfaceSymbol.revisionId,
|
||||
privateAttachments,
|
||||
operationBindings,
|
||||
relationshipMaterializations,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -291,11 +291,12 @@ export interface PackageRevision {
|
||||
}
|
||||
|
||||
export type DependencyBinding =
|
||||
| { kind: "state"; slotId: SlotId }
|
||||
| { kind: "state"; slotId: SlotId; via?: EdgeTraversal }
|
||||
| {
|
||||
kind: "edge";
|
||||
edgeTypeId: EdgeTypeId;
|
||||
projectionId: EdgeProjectionId;
|
||||
via?: EdgeTraversal;
|
||||
}
|
||||
| {
|
||||
kind: "receiver-interface";
|
||||
@@ -308,6 +309,24 @@ export interface BoundDependency {
|
||||
binding: DependencyBinding;
|
||||
}
|
||||
|
||||
/** Selects the object at the other end of an exactly-one relationship. */
|
||||
export interface EdgeTraversal {
|
||||
edgeTypeId: EdgeTypeId;
|
||||
projectionId: EdgeProjectionId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provisional get-or-create recipe for a relationship implementation. The
|
||||
* host projection is supplied by the relationship's resolve binding; this
|
||||
* projection originates at the object constructed for the relationship.
|
||||
*/
|
||||
export interface RelationshipMaterialization {
|
||||
memberId: MemberId;
|
||||
constructorAtomId: AtomId;
|
||||
edgeTypeId: EdgeTypeId;
|
||||
constructedProjectionId: EdgeProjectionId;
|
||||
}
|
||||
|
||||
export type Binding =
|
||||
| {
|
||||
kind: "state";
|
||||
@@ -337,6 +356,7 @@ export interface Conformance {
|
||||
interfaceRevisionId: InterfaceRevisionId;
|
||||
privateAttachments: PersistentAttachment[];
|
||||
operationBindings: OperationBinding[];
|
||||
relationshipMaterializations: RelationshipMaterialization[];
|
||||
}
|
||||
|
||||
export interface AtomConstructorBinding {
|
||||
|
||||
@@ -51,6 +51,7 @@ export type CapabilityValidationIssueCode =
|
||||
| "duplicate-dependency-port"
|
||||
| "duplicate-conformance"
|
||||
| "duplicate-operation-binding"
|
||||
| "duplicate-relationship-materialization"
|
||||
| "duplicate-constructor"
|
||||
| "unresolved-reference"
|
||||
| "invalid-attachment"
|
||||
@@ -64,7 +65,8 @@ export type CapabilityValidationIssueCode =
|
||||
| "cyclic-conformance-requirement"
|
||||
| "missing-operation-binding"
|
||||
| "unknown-operation-binding"
|
||||
| "invalid-constructor";
|
||||
| "invalid-constructor"
|
||||
| "invalid-relationship-materialization";
|
||||
|
||||
export interface CapabilityValidationIssue {
|
||||
code: CapabilityValidationIssueCode;
|
||||
@@ -460,6 +462,16 @@ const atomSatisfiesConstraint = (
|
||||
? constraint.atomId === atomId
|
||||
: conformances.has(conformanceKey(atomId, constraint.interfaceRevisionId));
|
||||
|
||||
const constraintSatisfiesConstraint = (
|
||||
actual: EdgeEndpointConstraint,
|
||||
required: EdgeEndpointConstraint,
|
||||
conformances: ReadonlyMap<string, Conformance>,
|
||||
) => constraintsEqual(actual, required) || (
|
||||
actual.kind === "atom" &&
|
||||
required.kind === "interface" &&
|
||||
atomSatisfiesConstraint(actual.atomId, required, conformances)
|
||||
);
|
||||
|
||||
const canAccessAttachment = (
|
||||
owner: AttachmentOwner,
|
||||
conformance: Pick<Conformance, "atomId" | "interfaceRevisionId"> | undefined,
|
||||
@@ -958,6 +970,52 @@ const validateAttachmentAccess = (
|
||||
return true;
|
||||
};
|
||||
|
||||
const validateTraversal = (
|
||||
issues: CapabilityValidationIssue[],
|
||||
indexes: ValidationIndexes,
|
||||
atomId: AtomId,
|
||||
traversal: { edgeTypeId: EdgeTypeId; projectionId: EdgeProjectionId },
|
||||
path: string,
|
||||
) => {
|
||||
const attachment = findAttachment(indexes, "edge", traversal.edgeTypeId);
|
||||
if (!attachment || attachment.attachment.kind !== "edge") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-dependency-binding",
|
||||
`${path}.edgeTypeId`,
|
||||
`Unknown traversal edge ${traversal.edgeTypeId}`,
|
||||
);
|
||||
return undefined;
|
||||
}
|
||||
const projection = edgeProjection(attachment.attachment, traversal.projectionId);
|
||||
if (!projection) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-dependency-binding",
|
||||
`${path}.projectionId`,
|
||||
`Traversal projection ${traversal.projectionId} is not on edge ${traversal.edgeTypeId}`,
|
||||
);
|
||||
return undefined;
|
||||
}
|
||||
if (!atomSatisfiesConstraint(atomId, projection.endpoint.constraint, indexes.conformances)) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-dependency-binding",
|
||||
`${path}.projectionId`,
|
||||
`Traversal projection ${traversal.projectionId} cannot originate at receiver atom ${atomId}`,
|
||||
);
|
||||
}
|
||||
if (projection.endpoint.cardinality !== "exactly-one") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-dependency-binding",
|
||||
`${path}.projectionId`,
|
||||
"Dependency traversal must select exactly one object",
|
||||
);
|
||||
}
|
||||
return projection;
|
||||
};
|
||||
|
||||
const validateBoundDependencies = (
|
||||
issues: CapabilityValidationIssue[],
|
||||
params: {
|
||||
@@ -1020,12 +1078,31 @@ const validateBoundDependencies = (
|
||||
break;
|
||||
}
|
||||
validateAttachmentAccess(issues, attachment, params.conformance, `${path}.binding.slotId`);
|
||||
if (attachment.attachment.attachedTo !== params.atomId) {
|
||||
const traversal = stateBinding.via
|
||||
? validateTraversal(
|
||||
issues,
|
||||
params.indexes,
|
||||
params.atomId,
|
||||
stateBinding.via,
|
||||
`${path}.binding.via`,
|
||||
)
|
||||
: undefined;
|
||||
if (
|
||||
stateBinding.via
|
||||
? traversal && !atomSatisfiesConstraint(
|
||||
attachment.attachment.attachedTo,
|
||||
traversal.target.constraint,
|
||||
params.indexes.conformances,
|
||||
)
|
||||
: attachment.attachment.attachedTo !== params.atomId
|
||||
) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-dependency-binding",
|
||||
`${path}.binding.slotId`,
|
||||
`State ${stateBinding.slotId} is not attached to receiver atom ${params.atomId}`,
|
||||
stateBinding.via
|
||||
? `State ${stateBinding.slotId} is not attached to the traversal target`
|
||||
: `State ${stateBinding.slotId} is not attached to receiver atom ${params.atomId}`,
|
||||
);
|
||||
}
|
||||
if (!valueTypesEqual(requirement.valueType, attachment.attachment.valueType)) {
|
||||
@@ -1061,16 +1138,46 @@ const validateBoundDependencies = (
|
||||
);
|
||||
break;
|
||||
}
|
||||
if (!atomSatisfiesConstraint(params.atomId, projection.endpoint.constraint, params.indexes.conformances)) {
|
||||
const traversal = edgeBinding.via
|
||||
? validateTraversal(
|
||||
issues,
|
||||
params.indexes,
|
||||
params.atomId,
|
||||
edgeBinding.via,
|
||||
`${path}.binding.via`,
|
||||
)
|
||||
: undefined;
|
||||
const originMatches = edgeBinding.via
|
||||
? traversal && (
|
||||
projection.endpoint.constraint.kind === "atom"
|
||||
? atomSatisfiesConstraint(
|
||||
projection.endpoint.constraint.atomId,
|
||||
traversal.target.constraint,
|
||||
params.indexes.conformances,
|
||||
)
|
||||
: constraintsEqual(projection.endpoint.constraint, traversal.target.constraint)
|
||||
)
|
||||
: atomSatisfiesConstraint(
|
||||
params.atomId,
|
||||
projection.endpoint.constraint,
|
||||
params.indexes.conformances,
|
||||
);
|
||||
if (!originMatches) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-dependency-binding",
|
||||
`${path}.binding.projectionId`,
|
||||
`Projection ${edgeBinding.projectionId} cannot originate at receiver atom ${params.atomId}`,
|
||||
edgeBinding.via
|
||||
? `Projection ${edgeBinding.projectionId} cannot originate at the traversal target`
|
||||
: `Projection ${edgeBinding.projectionId} cannot originate at receiver atom ${params.atomId}`,
|
||||
);
|
||||
}
|
||||
if (
|
||||
!constraintsEqual(requirement.target, projection.target.constraint) ||
|
||||
!constraintSatisfiesConstraint(
|
||||
projection.target.constraint,
|
||||
requirement.target,
|
||||
params.indexes.conformances,
|
||||
) ||
|
||||
requirement.cardinality !== projection.endpoint.cardinality
|
||||
) {
|
||||
issue(
|
||||
@@ -1290,8 +1397,21 @@ const validateConformances = (
|
||||
}
|
||||
validateAttachmentAccess(issues, attachment, conformance, `${bindingPath}.binding.edgeTypeId`);
|
||||
const projection = edgeProjection(attachment.attachment, binding.projectionId);
|
||||
const relationshipMember = operationEntry.member.kind === "relationship"
|
||||
? operationEntry.member
|
||||
: undefined;
|
||||
const operationEdge = relationshipMember
|
||||
? {
|
||||
...attachment.attachment,
|
||||
endpoints: attachment.attachment.endpoints.map((endpoint, index) =>
|
||||
index === (projection?.endpointIndex === 0 ? 1 : 0)
|
||||
? { ...endpoint, constraint: relationshipMember.target }
|
||||
: endpoint,
|
||||
) as [EdgeEndpoint, EdgeEndpoint],
|
||||
}
|
||||
: attachment.attachment;
|
||||
const expected = edgePrimitiveSignature(
|
||||
attachment.attachment,
|
||||
operationEdge,
|
||||
binding.projectionId,
|
||||
binding.primitive,
|
||||
);
|
||||
@@ -1320,7 +1440,11 @@ const validateConformances = (
|
||||
"Edge primitives may only implement relationship members",
|
||||
);
|
||||
} else if (
|
||||
!constraintsEqual(operationEntry.member.target, projection.target.constraint) ||
|
||||
!constraintSatisfiesConstraint(
|
||||
projection.target.constraint,
|
||||
operationEntry.member.target,
|
||||
indexes.conformances,
|
||||
) ||
|
||||
operationEntry.member.cardinality !== projection.endpoint.cardinality
|
||||
) {
|
||||
issue(
|
||||
@@ -1398,6 +1522,148 @@ const validateConformances = (
|
||||
});
|
||||
}
|
||||
|
||||
const materializedMembers = new Set<string>();
|
||||
for (const [materializationIndex, materialization] of
|
||||
(conformance.relationshipMaterializations ?? []).entries()) {
|
||||
const materializationPath =
|
||||
`${path}.relationshipMaterializations[${materializationIndex}]`;
|
||||
if (materializedMembers.has(materialization.memberId)) {
|
||||
issue(
|
||||
issues,
|
||||
"duplicate-relationship-materialization",
|
||||
materializationPath,
|
||||
`Relationship ${materialization.memberId} has more than one materialization recipe`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
materializedMembers.add(materialization.memberId);
|
||||
const member = interfaceEntry.revision.members.find((entry) =>
|
||||
entry.id === materialization.memberId);
|
||||
if (!member || member.kind !== "relationship") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.memberId`,
|
||||
`Member ${materialization.memberId} is not a relationship on ${conformance.interfaceRevisionId}`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
if (member.cardinality !== "optional-one") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.memberId`,
|
||||
"A lazily constructed relationship must be optional-one before construction",
|
||||
);
|
||||
}
|
||||
const resolveOperation = member.operations.find((entry) =>
|
||||
entry.displayName === "resolve");
|
||||
const resolveBinding = resolveOperation
|
||||
? bindings.get(resolveOperation.id)
|
||||
: undefined;
|
||||
if (!resolveBinding || resolveBinding.kind !== "edge") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.memberId`,
|
||||
"A materialized relationship must bind its resolve operation to an edge",
|
||||
);
|
||||
continue;
|
||||
}
|
||||
if (resolveBinding.edgeTypeId !== materialization.edgeTypeId) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.edgeTypeId`,
|
||||
"Materialization and relationship resolution must use the same edge",
|
||||
);
|
||||
}
|
||||
const attachment = findAttachment(indexes, "edge", materialization.edgeTypeId);
|
||||
if (!attachment || attachment.attachment.kind !== "edge") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.edgeTypeId`,
|
||||
`Unknown materialization edge ${materialization.edgeTypeId}`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
validateAttachmentAccess(
|
||||
issues,
|
||||
attachment,
|
||||
conformance,
|
||||
`${materializationPath}.edgeTypeId`,
|
||||
);
|
||||
const hostProjection = edgeProjection(
|
||||
attachment.attachment,
|
||||
resolveBinding.projectionId,
|
||||
);
|
||||
const constructedProjection = edgeProjection(
|
||||
attachment.attachment,
|
||||
materialization.constructedProjectionId,
|
||||
);
|
||||
if (!hostProjection || !constructedProjection ||
|
||||
hostProjection.endpointIndex === constructedProjection.endpointIndex) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.constructedProjectionId`,
|
||||
"Materialization must connect through the opposite projection of the resolved edge",
|
||||
);
|
||||
continue;
|
||||
}
|
||||
if (!atomSatisfiesConstraint(
|
||||
materialization.constructorAtomId,
|
||||
member.target,
|
||||
indexes.conformances,
|
||||
)) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.constructorAtomId`,
|
||||
`Constructed atom ${materialization.constructorAtomId} does not satisfy the relationship target`,
|
||||
);
|
||||
}
|
||||
if (!atomSatisfiesConstraint(
|
||||
materialization.constructorAtomId,
|
||||
constructedProjection.endpoint.constraint,
|
||||
indexes.conformances,
|
||||
) || !atomSatisfiesConstraint(
|
||||
conformance.atomId,
|
||||
constructedProjection.target.constraint,
|
||||
indexes.conformances,
|
||||
)) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.constructedProjectionId`,
|
||||
"Constructed projection does not connect the constructed atom back to the host atom",
|
||||
);
|
||||
}
|
||||
const constructor = indexes.constructors.get(materialization.constructorAtomId);
|
||||
const constructorExport = constructor
|
||||
? indexes.packages.get(constructor.packageRevisionId)?.exports.get(constructor.exportId)
|
||||
: undefined;
|
||||
if (!constructor || !constructorExport || constructorExport.kind !== "constructor") {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.constructorAtomId`,
|
||||
`Constructed atom ${materialization.constructorAtomId} has no valid constructor`,
|
||||
);
|
||||
} else if (!valueTypesEqual(
|
||||
constructorExport.inputType,
|
||||
valueType.atomRef(conformance.atomId),
|
||||
)) {
|
||||
issue(
|
||||
issues,
|
||||
"invalid-relationship-materialization",
|
||||
`${materializationPath}.constructorAtomId`,
|
||||
`Component constructor must accept ${typeLabel(valueType.atomRef(conformance.atomId))}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
for (const operation of interfaceEntry.operations.values()) {
|
||||
if (!bindings.has(operation.operation.id)) {
|
||||
issue(
|
||||
@@ -1714,9 +1980,15 @@ export const computeCapabilityClosure = (
|
||||
switch (dependency.binding.kind) {
|
||||
case "state":
|
||||
attachments.add(dependency.binding.slotId);
|
||||
if (dependency.binding.via) {
|
||||
attachments.add(dependency.binding.via.edgeTypeId);
|
||||
}
|
||||
break;
|
||||
case "edge":
|
||||
attachments.add(dependency.binding.edgeTypeId);
|
||||
if (dependency.binding.via) {
|
||||
attachments.add(dependency.binding.via.edgeTypeId);
|
||||
}
|
||||
break;
|
||||
case "receiver-interface":
|
||||
queued.push({
|
||||
@@ -1772,6 +2044,16 @@ export const computeCapabilityClosure = (
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const materialization of
|
||||
conformance.source.relationshipMaterializations ?? []) {
|
||||
attachments.add(materialization.edgeTypeId);
|
||||
constructors.add(materialization.constructorAtomId);
|
||||
const constructor = plan.constructors.get(materialization.constructorAtomId);
|
||||
if (constructor) {
|
||||
packages.add(constructor.packageRevisionId);
|
||||
includeDependencies(materialization.constructorAtomId, constructor.dependencies);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
+74
-17
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
|
||||
* Describes the file quixos/orch.proto.
|
||||
*/
|
||||
export const file_quixos_orch: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChFxdWl4b3Mvb3JjaC5wcm90bxILcXVpeG9zLm9yY2gipQEKFkNvbnN0cnVjdE9iamVjdFJlcXVlc3QSDwoHYXRvbV9pZBgBIAEoCRI9CgVpbnB1dBgCIAMoCzIuLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPwoXQ29uc3RydWN0T2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCLUAQoXSW52b2tlQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI+CgVpbnB1dBgDIAMoCzIvLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0LklucHV0RW50cnkaOwoKSW5wdXRFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIpgBChhJbnZva2VDYXBhYmlsaXR5UmVzcG9uc2USFQoNaW52b2NhdGlvbl9pZBgBIAEoCRIrCgphY3RpdmF0aW9uGAIgASgLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbhIKCgJvaxgDIAEoCBIdCgZyZXN1bHQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFZXJyb3IYBSABKAki0gEKFldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI9CgVpbnB1dBgDIAMoCzIuLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEi4wEKFFdhdGNoQ2FwYWJpbGl0eUV2ZW50EhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SEAoId2F0Y2hfaWQYAyABKAkSHAoFdmFsdWUYBCABKAsyDS5jYW1pbm8uVmFsdWUSNwoMZGVwZW5kZW5jaWVzGAUgAygLMiEucXVpeG9zLnJ1bnRpbWUuRGVyaXZlZERlcGVuZGVuY3kSDQoFZXJyb3IYBiABKAkSDwoHaW5pdGlhbBgHIAEoCCIVChNHZXRXb3Jrc3BhY2VSZXF1ZXN0ImcKFEdldFdvcmtzcGFjZVJlc3BvbnNlEhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIdChV3b3Jrc3BhY2VfcmV2aXNpb25faWQYAiABKAkSGgoSc291cmNlX3Jvb3RfY29tbWl0GAMgASgJIhgKFkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QiHwodTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QiUAoeTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEi4KC2Rlc2NyaXB0b3JzGAEgAygLMhkucXVpeG9zLlBhY2thZ2VEZXNjcmlwdG9yIhwKGkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0IlIKG0xpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRIzCghydW50aW1lcxgBIAMoCzIhLnF1aXhvcy5vcmNoLlBhY2thZ2VSdW50aW1lU3RhdHVzIkcKF0xpc3RBY3RpdmF0aW9uc1Jlc3BvbnNlEiwKC2FjdGl2YXRpb25zGAEgAygLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbiI/ChZDbG9zZUFjdGl2YXRpb25SZXF1ZXN0EhUKDWFjdGl2YXRpb25faWQYASABKAkSDgoGcmVhc29uGAIgASgJIkYKF0Nsb3NlQWN0aXZhdGlvblJlc3BvbnNlEisKCmFjdGl2YXRpb24YASABKAsyFy5xdWl4b3Mub3JjaC5BY3RpdmF0aW9uIusBCgpBY3RpdmF0aW9uEhUKDWFjdGl2YXRpb25faWQYASABKAkSKAoGZXhwb3J0GAIgASgLMhgucXVpeG9zLlBhY2thZ2VFeHBvcnRSZWYSEQoJb2JqZWN0X2lkGAMgASgJEg0KBXN0YXRlGAQgASgJEg4KBmRlbWFuZBgFIAEoDRIRCglvcGVuZWRfYXQYBiABKAkSFAoMbGFzdF91c2VkX2F0GAcgASgJEhgKEGlkbGVfZGVhZGxpbmVfYXQYCCABKAkSEQoJY2xvc2VkX2F0GAkgASgJEhQKDGNsb3NlX3JlYXNvbhgKIAEoCSKzAgoUUGFja2FnZVJ1bnRpbWVTdGF0dXMSEwoLcnVudGltZV9rZXkYASABKAkSGwoTcGFja2FnZV9yZXZpc2lvbl9pZBgCIAEoCRIZChFzb3VyY2VfcmVwb3NpdG9yeRgDIAEoCRIVCg1zb3VyY2VfY29tbWl0GAQgASgJEhQKDGJ1aWxkX3RhcmdldBgFIAEoCRITCgtzZXJ2ZXJfcGF0aBgGIAEoCRILCgNwaWQYByABKA0SDQoFc3RhdGUYCCABKAkSEgoKc3RhcnRlZF9hdBgJIAEoCRIZChFsYXN0X2hhbmRzaGFrZV9hdBgKIAEoCRIgChhydW50aW1lX3Byb3RvY29sX3ZlcnNpb24YCyABKAkSHwoXYWR2ZXJ0aXNlZF9leHBvcnRfY291bnQYDCABKA0ynwYKE09yY2hlc3RyYXRvclJ1bnRpbWUSXwoQSW52b2tlQ2FwYWJpbGl0eRIkLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0GiUucXVpeG9zLm9yY2guSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlElsKD1dhdGNoQ2FwYWJpbGl0eRIjLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5XYXRjaENhcGFiaWxpdHlFdmVudDABElwKD0NvbnN0cnVjdE9iamVjdBIjLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QaJC5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXNwb25zZRJTCgxHZXRXb3Jrc3BhY2USIC5xdWl4b3Mub3JjaC5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiEucXVpeG9zLm9yY2guR2V0V29ya3NwYWNlUmVzcG9uc2UScQoWTGlzdFBhY2thZ2VEZXNjcmlwdG9ycxIqLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlRGVzY3JpcHRvcnNSZXF1ZXN0GisucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEmgKE0xpc3RQYWNrYWdlUnVudGltZXMSJy5xdWl4b3Mub3JjaC5MaXN0UGFja2FnZVJ1bnRpbWVzUmVxdWVzdBooLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRJcCg9MaXN0QWN0aXZhdGlvbnMSIy5xdWl4b3Mub3JjaC5MaXN0QWN0aXZhdGlvbnNSZXF1ZXN0GiQucXVpeG9zLm9yY2guTGlzdEFjdGl2YXRpb25zUmVzcG9uc2USXAoPQ2xvc2VBY3RpdmF0aW9uEiMucXVpeG9zLm9yY2guQ2xvc2VBY3RpdmF0aW9uUmVxdWVzdBokLnF1aXhvcy5vcmNoLkNsb3NlQWN0aXZhdGlvblJlc3BvbnNlYgZwcm90bzM", [file_camino_api, file_quixos_package, file_quixos_refs, file_quixos_runtime]);
|
||||
fileDesc("ChFxdWl4b3Mvb3JjaC5wcm90bxILcXVpeG9zLm9yY2gipQEKFkNvbnN0cnVjdE9iamVjdFJlcXVlc3QSDwoHYXRvbV9pZBgBIAEoCRI9CgVpbnB1dBgCIAMoCzIuLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPwoXQ29uc3RydWN0T2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCJtCiZSZXNvbHZlT3JDb25zdHJ1Y3RSZWxhdGVkT2JqZWN0UmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhEKCW1lbWJlcl9pZBgDIAEoCSJkCidSZXNvbHZlT3JDb25zdHJ1Y3RSZWxhdGVkT2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdBITCgtjb25zdHJ1Y3RlZBgCIAEoCCLUAQoXSW52b2tlQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI+CgVpbnB1dBgDIAMoCzIvLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0LklucHV0RW50cnkaOwoKSW5wdXRFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIpgBChhJbnZva2VDYXBhYmlsaXR5UmVzcG9uc2USFQoNaW52b2NhdGlvbl9pZBgBIAEoCRIrCgphY3RpdmF0aW9uGAIgASgLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbhIKCgJvaxgDIAEoCBIdCgZyZXN1bHQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFZXJyb3IYBSABKAki0gEKFldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI9CgVpbnB1dBgDIAMoCzIuLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEi4wEKFFdhdGNoQ2FwYWJpbGl0eUV2ZW50EhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SEAoId2F0Y2hfaWQYAyABKAkSHAoFdmFsdWUYBCABKAsyDS5jYW1pbm8uVmFsdWUSNwoMZGVwZW5kZW5jaWVzGAUgAygLMiEucXVpeG9zLnJ1bnRpbWUuRGVyaXZlZERlcGVuZGVuY3kSDQoFZXJyb3IYBiABKAkSDwoHaW5pdGlhbBgHIAEoCCIVChNHZXRXb3Jrc3BhY2VSZXF1ZXN0ImcKFEdldFdvcmtzcGFjZVJlc3BvbnNlEhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIdChV3b3Jrc3BhY2VfcmV2aXNpb25faWQYAiABKAkSGgoSc291cmNlX3Jvb3RfY29tbWl0GAMgASgJIhgKFkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QiHwodTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QiUAoeTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEi4KC2Rlc2NyaXB0b3JzGAEgAygLMhkucXVpeG9zLlBhY2thZ2VEZXNjcmlwdG9yIhwKGkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0IlIKG0xpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRIzCghydW50aW1lcxgBIAMoCzIhLnF1aXhvcy5vcmNoLlBhY2thZ2VSdW50aW1lU3RhdHVzIkcKF0xpc3RBY3RpdmF0aW9uc1Jlc3BvbnNlEiwKC2FjdGl2YXRpb25zGAEgAygLMhcucXVpeG9zLm9yY2guQWN0aXZhdGlvbiI/ChZDbG9zZUFjdGl2YXRpb25SZXF1ZXN0EhUKDWFjdGl2YXRpb25faWQYASABKAkSDgoGcmVhc29uGAIgASgJIkYKF0Nsb3NlQWN0aXZhdGlvblJlc3BvbnNlEisKCmFjdGl2YXRpb24YASABKAsyFy5xdWl4b3Mub3JjaC5BY3RpdmF0aW9uIusBCgpBY3RpdmF0aW9uEhUKDWFjdGl2YXRpb25faWQYASABKAkSKAoGZXhwb3J0GAIgASgLMhgucXVpeG9zLlBhY2thZ2VFeHBvcnRSZWYSEQoJb2JqZWN0X2lkGAMgASgJEg0KBXN0YXRlGAQgASgJEg4KBmRlbWFuZBgFIAEoDRIRCglvcGVuZWRfYXQYBiABKAkSFAoMbGFzdF91c2VkX2F0GAcgASgJEhgKEGlkbGVfZGVhZGxpbmVfYXQYCCABKAkSEQoJY2xvc2VkX2F0GAkgASgJEhQKDGNsb3NlX3JlYXNvbhgKIAEoCSKzAgoUUGFja2FnZVJ1bnRpbWVTdGF0dXMSEwoLcnVudGltZV9rZXkYASABKAkSGwoTcGFja2FnZV9yZXZpc2lvbl9pZBgCIAEoCRIZChFzb3VyY2VfcmVwb3NpdG9yeRgDIAEoCRIVCg1zb3VyY2VfY29tbWl0GAQgASgJEhQKDGJ1aWxkX3RhcmdldBgFIAEoCRITCgtzZXJ2ZXJfcGF0aBgGIAEoCRILCgNwaWQYByABKA0SDQoFc3RhdGUYCCABKAkSEgoKc3RhcnRlZF9hdBgJIAEoCRIZChFsYXN0X2hhbmRzaGFrZV9hdBgKIAEoCRIgChhydW50aW1lX3Byb3RvY29sX3ZlcnNpb24YCyABKAkSHwoXYWR2ZXJ0aXNlZF9leHBvcnRfY291bnQYDCABKA0yrgcKE09yY2hlc3RyYXRvclJ1bnRpbWUSXwoQSW52b2tlQ2FwYWJpbGl0eRIkLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0GiUucXVpeG9zLm9yY2guSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlElsKD1dhdGNoQ2FwYWJpbGl0eRIjLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5XYXRjaENhcGFiaWxpdHlFdmVudDABElwKD0NvbnN0cnVjdE9iamVjdBIjLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QaJC5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXNwb25zZRKMAQofUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdBIzLnF1aXhvcy5vcmNoLlJlc29sdmVPckNvbnN0cnVjdFJlbGF0ZWRPYmplY3RSZXF1ZXN0GjQucXVpeG9zLm9yY2guUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlc3BvbnNlElMKDEdldFdvcmtzcGFjZRIgLnF1aXhvcy5vcmNoLkdldFdvcmtzcGFjZVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5HZXRXb3Jrc3BhY2VSZXNwb25zZRJxChZMaXN0UGFja2FnZURlc2NyaXB0b3JzEioucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QaKy5xdWl4b3Mub3JjaC5MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVzcG9uc2USaAoTTGlzdFBhY2thZ2VSdW50aW1lcxInLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0GigucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VSdW50aW1lc1Jlc3BvbnNlElwKD0xpc3RBY3RpdmF0aW9ucxIjLnF1aXhvcy5vcmNoLkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QaJC5xdWl4b3Mub3JjaC5MaXN0QWN0aXZhdGlvbnNSZXNwb25zZRJcCg9DbG9zZUFjdGl2YXRpb24SIy5xdWl4b3Mub3JjaC5DbG9zZUFjdGl2YXRpb25SZXF1ZXN0GiQucXVpeG9zLm9yY2guQ2xvc2VBY3RpdmF0aW9uUmVzcG9uc2ViBnByb3RvMw", [file_camino_api, file_quixos_package, file_quixos_refs, file_quixos_runtime]);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ConstructObjectRequest
|
||||
@@ -59,6 +59,55 @@ export type ConstructObjectResponse = Message<"quixos.orch.ConstructObjectRespon
|
||||
export const ConstructObjectResponseSchema: GenMessage<ConstructObjectResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 1);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ResolveOrConstructRelatedObjectRequest
|
||||
*/
|
||||
export type ResolveOrConstructRelatedObjectRequest = Message<"quixos.orch.ResolveOrConstructRelatedObjectRequest"> & {
|
||||
/**
|
||||
* @generated from field: string object_id = 1;
|
||||
*/
|
||||
objectId: string;
|
||||
|
||||
/**
|
||||
* @generated from field: string interface_revision_id = 2;
|
||||
*/
|
||||
interfaceRevisionId: string;
|
||||
|
||||
/**
|
||||
* @generated from field: string member_id = 3;
|
||||
*/
|
||||
memberId: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message quixos.orch.ResolveOrConstructRelatedObjectRequest.
|
||||
* Use `create(ResolveOrConstructRelatedObjectRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const ResolveOrConstructRelatedObjectRequestSchema: GenMessage<ResolveOrConstructRelatedObjectRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 2);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ResolveOrConstructRelatedObjectResponse
|
||||
*/
|
||||
export type ResolveOrConstructRelatedObjectResponse = Message<"quixos.orch.ResolveOrConstructRelatedObjectResponse"> & {
|
||||
/**
|
||||
* @generated from field: camino.CaminoObject object = 1;
|
||||
*/
|
||||
object?: CaminoObject | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: bool constructed = 2;
|
||||
*/
|
||||
constructed: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message quixos.orch.ResolveOrConstructRelatedObjectResponse.
|
||||
* Use `create(ResolveOrConstructRelatedObjectResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const ResolveOrConstructRelatedObjectResponseSchema: GenMessage<ResolveOrConstructRelatedObjectResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 3);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.InvokeCapabilityRequest
|
||||
*/
|
||||
@@ -84,7 +133,7 @@ export type InvokeCapabilityRequest = Message<"quixos.orch.InvokeCapabilityReque
|
||||
* Use `create(InvokeCapabilityRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const InvokeCapabilityRequestSchema: GenMessage<InvokeCapabilityRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 2);
|
||||
messageDesc(file_quixos_orch, 4);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.InvokeCapabilityResponse
|
||||
@@ -121,7 +170,7 @@ export type InvokeCapabilityResponse = Message<"quixos.orch.InvokeCapabilityResp
|
||||
* Use `create(InvokeCapabilityResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const InvokeCapabilityResponseSchema: GenMessage<InvokeCapabilityResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 3);
|
||||
messageDesc(file_quixos_orch, 5);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.WatchCapabilityRequest
|
||||
@@ -148,7 +197,7 @@ export type WatchCapabilityRequest = Message<"quixos.orch.WatchCapabilityRequest
|
||||
* Use `create(WatchCapabilityRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const WatchCapabilityRequestSchema: GenMessage<WatchCapabilityRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 4);
|
||||
messageDesc(file_quixos_orch, 6);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.WatchCapabilityEvent
|
||||
@@ -195,7 +244,7 @@ export type WatchCapabilityEvent = Message<"quixos.orch.WatchCapabilityEvent"> &
|
||||
* Use `create(WatchCapabilityEventSchema)` to create a new message.
|
||||
*/
|
||||
export const WatchCapabilityEventSchema: GenMessage<WatchCapabilityEvent> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 5);
|
||||
messageDesc(file_quixos_orch, 7);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.GetWorkspaceRequest
|
||||
@@ -208,7 +257,7 @@ export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & {
|
||||
* Use `create(GetWorkspaceRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const GetWorkspaceRequestSchema: GenMessage<GetWorkspaceRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 6);
|
||||
messageDesc(file_quixos_orch, 8);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.GetWorkspaceResponse
|
||||
@@ -235,7 +284,7 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> &
|
||||
* Use `create(GetWorkspaceResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const GetWorkspaceResponseSchema: GenMessage<GetWorkspaceResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 7);
|
||||
messageDesc(file_quixos_orch, 9);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ListActivationsRequest
|
||||
@@ -248,7 +297,7 @@ export type ListActivationsRequest = Message<"quixos.orch.ListActivationsRequest
|
||||
* Use `create(ListActivationsRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const ListActivationsRequestSchema: GenMessage<ListActivationsRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 8);
|
||||
messageDesc(file_quixos_orch, 10);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ListPackageDescriptorsRequest
|
||||
@@ -261,7 +310,7 @@ export type ListPackageDescriptorsRequest = Message<"quixos.orch.ListPackageDesc
|
||||
* Use `create(ListPackageDescriptorsRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const ListPackageDescriptorsRequestSchema: GenMessage<ListPackageDescriptorsRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 9);
|
||||
messageDesc(file_quixos_orch, 11);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ListPackageDescriptorsResponse
|
||||
@@ -278,7 +327,7 @@ export type ListPackageDescriptorsResponse = Message<"quixos.orch.ListPackageDes
|
||||
* Use `create(ListPackageDescriptorsResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const ListPackageDescriptorsResponseSchema: GenMessage<ListPackageDescriptorsResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 10);
|
||||
messageDesc(file_quixos_orch, 12);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ListPackageRuntimesRequest
|
||||
@@ -291,7 +340,7 @@ export type ListPackageRuntimesRequest = Message<"quixos.orch.ListPackageRuntime
|
||||
* Use `create(ListPackageRuntimesRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const ListPackageRuntimesRequestSchema: GenMessage<ListPackageRuntimesRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 11);
|
||||
messageDesc(file_quixos_orch, 13);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ListPackageRuntimesResponse
|
||||
@@ -308,7 +357,7 @@ export type ListPackageRuntimesResponse = Message<"quixos.orch.ListPackageRuntim
|
||||
* Use `create(ListPackageRuntimesResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const ListPackageRuntimesResponseSchema: GenMessage<ListPackageRuntimesResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 12);
|
||||
messageDesc(file_quixos_orch, 14);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.ListActivationsResponse
|
||||
@@ -325,7 +374,7 @@ export type ListActivationsResponse = Message<"quixos.orch.ListActivationsRespon
|
||||
* Use `create(ListActivationsResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const ListActivationsResponseSchema: GenMessage<ListActivationsResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 13);
|
||||
messageDesc(file_quixos_orch, 15);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.CloseActivationRequest
|
||||
@@ -347,7 +396,7 @@ export type CloseActivationRequest = Message<"quixos.orch.CloseActivationRequest
|
||||
* Use `create(CloseActivationRequestSchema)` to create a new message.
|
||||
*/
|
||||
export const CloseActivationRequestSchema: GenMessage<CloseActivationRequest> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 14);
|
||||
messageDesc(file_quixos_orch, 16);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.CloseActivationResponse
|
||||
@@ -364,7 +413,7 @@ export type CloseActivationResponse = Message<"quixos.orch.CloseActivationRespon
|
||||
* Use `create(CloseActivationResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const CloseActivationResponseSchema: GenMessage<CloseActivationResponse> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 15);
|
||||
messageDesc(file_quixos_orch, 17);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.Activation
|
||||
@@ -426,7 +475,7 @@ export type Activation = Message<"quixos.orch.Activation"> & {
|
||||
* Use `create(ActivationSchema)` to create a new message.
|
||||
*/
|
||||
export const ActivationSchema: GenMessage<Activation> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 16);
|
||||
messageDesc(file_quixos_orch, 18);
|
||||
|
||||
/**
|
||||
* @generated from message quixos.orch.PackageRuntimeStatus
|
||||
@@ -498,7 +547,7 @@ export type PackageRuntimeStatus = Message<"quixos.orch.PackageRuntimeStatus"> &
|
||||
* Use `create(PackageRuntimeStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const PackageRuntimeStatusSchema: GenMessage<PackageRuntimeStatus> = /*@__PURE__*/
|
||||
messageDesc(file_quixos_orch, 17);
|
||||
messageDesc(file_quixos_orch, 19);
|
||||
|
||||
/**
|
||||
* @generated from service quixos.orch.OrchestratorRuntime
|
||||
@@ -528,6 +577,14 @@ export const OrchestratorRuntime: GenService<{
|
||||
input: typeof ConstructObjectRequestSchema;
|
||||
output: typeof ConstructObjectResponseSchema;
|
||||
},
|
||||
/**
|
||||
* @generated from rpc quixos.orch.OrchestratorRuntime.ResolveOrConstructRelatedObject
|
||||
*/
|
||||
resolveOrConstructRelatedObject: {
|
||||
methodKind: "unary";
|
||||
input: typeof ResolveOrConstructRelatedObjectRequestSchema;
|
||||
output: typeof ResolveOrConstructRelatedObjectResponseSchema;
|
||||
},
|
||||
/**
|
||||
* @generated from rpc quixos.orch.OrchestratorRuntime.GetWorkspace
|
||||
*/
|
||||
|
||||
@@ -10,7 +10,7 @@ import type { Message } from "@bufbuild/protobuf";
|
||||
* Describes the file quixos/refs.proto.
|
||||
*/
|
||||
export const file_quixos_refs: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zIkQKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCSJCChBQYWNrYWdlRXhwb3J0UmVmEhsKE3BhY2thZ2VfcmV2aXNpb25faWQYASABKAkSEQoJZXhwb3J0X2lkGAIgASgJIroBChJJbmplY3RlZERlcGVuZGVuY3kSDwoHcG9ydF9pZBgBIAEoCRIXCg1zdGF0ZV9zbG90X2lkGAIgASgJSAASJgoEZWRnZRgDIAEoCzIWLnF1aXhvcy5FZGdlRGVwZW5kZW5jeUgAEigKHnJlY2VpdmVyX2ludGVyZmFjZV9yZXZpc2lvbl9pZBgEIAEoCUgAEh0KE2NvbnN0cnVjdG9yX2F0b21faWQYBSABKAlIAEIJCgdiaW5kaW5nIj0KDkVkZ2VEZXBlbmRlbmN5EhQKDGVkZ2VfdHlwZV9pZBgBIAEoCRIVCg1wcm9qZWN0aW9uX2lkGAIgASgJYgZwcm90bzM");
|
||||
fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zIkQKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCSJCChBQYWNrYWdlRXhwb3J0UmVmEhsKE3BhY2thZ2VfcmV2aXNpb25faWQYASABKAkSEQoJZXhwb3J0X2lkGAIgASgJIs0BChJJbmplY3RlZERlcGVuZGVuY3kSDwoHcG9ydF9pZBgBIAEoCRIXCg1zdGF0ZV9zbG90X2lkGAIgASgJSAASJgoEZWRnZRgDIAEoCzIWLnF1aXhvcy5FZGdlRGVwZW5kZW5jeUgAEigKHnJlY2VpdmVyX2ludGVyZmFjZV9yZXZpc2lvbl9pZBgEIAEoCUgAEh0KE2NvbnN0cnVjdG9yX2F0b21faWQYBSABKAlIABIRCglvYmplY3RfaWQYBiABKAlCCQoHYmluZGluZyI9Cg5FZGdlRGVwZW5kZW5jeRIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCWIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message quixos.CapabilityRef
|
||||
@@ -93,6 +93,14 @@ export type InjectedDependency = Message<"quixos.InjectedDependency"> & {
|
||||
value: string;
|
||||
case: "constructorAtomId";
|
||||
} | { case: undefined; value?: undefined };
|
||||
|
||||
/**
|
||||
* Defaults to the invocation receiver. A checked dependency traversal can
|
||||
* select a related object explicitly before the package runtime starts.
|
||||
*
|
||||
* @generated from field: string object_id = 6;
|
||||
*/
|
||||
objectId: string;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { readFileSync } from "node:fs";
|
||||
import { resolve } from "node:path";
|
||||
import { test } from "node:test";
|
||||
import { compileCapabilitySource } from "../src/capability-language/index.js";
|
||||
import {
|
||||
@@ -146,3 +148,56 @@ test("well-formed but invalid programs report semantic paths", () => {
|
||||
assert.equal(diagnostic.phase, "validation");
|
||||
assert.ok(diagnostic.path?.includes("operationBindings"));
|
||||
});
|
||||
|
||||
test("Web Studio sidecars declare lazy materialization and checked cross-object ports", () => {
|
||||
const source = readFileSync(
|
||||
resolve(process.cwd(), "test/fixtures/web-studio.capabilities.qx"),
|
||||
"utf8",
|
||||
);
|
||||
const result = compileCapabilitySource(source, "web-studio.capabilities.qx");
|
||||
assert.equal(result.ok, true);
|
||||
if (!result.ok) return;
|
||||
|
||||
const host = result.workspace.conformances.find((entry) =>
|
||||
entry.atomId === "atom:project" &&
|
||||
entry.interfaceRevisionId === "interface:org.quixos.web-studio.has-react-component@1"
|
||||
);
|
||||
assert.deepEqual(host?.relationshipMaterializations, [{
|
||||
memberId: "member:org.quixos.web-studio.has-react-component:component",
|
||||
constructorAtomId: "atom:project-component",
|
||||
edgeTypeId: "edge:project:component",
|
||||
constructedProjectionId: "projection:component:subject",
|
||||
}]);
|
||||
|
||||
const component = result.workspace.conformances.find((entry) =>
|
||||
entry.atomId === "atom:project-component"
|
||||
);
|
||||
const binding = component?.operationBindings[0]?.binding;
|
||||
assert.equal(binding?.kind, "package");
|
||||
if (binding?.kind !== "package") return;
|
||||
assert.deepEqual(binding.dependencies[1]?.binding, {
|
||||
kind: "state",
|
||||
slotId: "slot:project:name",
|
||||
via: {
|
||||
edgeTypeId: "edge:project:component",
|
||||
projectionId: "projection:component:subject",
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
test("relationship materializers require a constructor from the host atom", () => {
|
||||
const source = readFileSync(
|
||||
resolve(process.cwd(), "test/fixtures/web-studio.capabilities.qx"),
|
||||
"utf8",
|
||||
).replace(
|
||||
"constructs ProjectComponent : atom-ref<Project>;",
|
||||
"constructs ProjectComponent : unit;",
|
||||
);
|
||||
const result = compileCapabilitySource(source, "invalid-materializer.qx");
|
||||
assert.equal(result.ok, false);
|
||||
if (result.ok) return;
|
||||
assert.ok(result.diagnostics.some((entry) =>
|
||||
entry.code === "invalid-relationship-materialization" &&
|
||||
entry.message.includes("must accept")
|
||||
));
|
||||
});
|
||||
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
workspace WebStudioFixture id "workspace:web-studio-fixture" revision "workspace:web-studio-fixture@1" commit "1111111111111111111111111111111111111111" {
|
||||
atom Project id "atom:project";
|
||||
atom ProjectComponent id "atom:project-component";
|
||||
|
||||
interface ReactComponent id "interface:org.quixos.web-studio.react-component" revision "interface:org.quixos.web-studio.react-component@1" source {
|
||||
repository "https://repos.quixos.org/org-quixos-web-studio/interface-react-component.git";
|
||||
commit "2222222222222222222222222222222222222222";
|
||||
} {
|
||||
value props id "member:org.quixos.web-studio.react-component:props" : string {
|
||||
get id "operation:org.quixos.web-studio.react-component:props:get";
|
||||
}
|
||||
}
|
||||
|
||||
interface HasReactComponent id "interface:org.quixos.web-studio.has-react-component" revision "interface:org.quixos.web-studio.has-react-component@1" source {
|
||||
repository "https://repos.quixos.org/org-quixos-web-studio/interface-has-react-component.git";
|
||||
commit "3333333333333333333333333333333333333333";
|
||||
} {
|
||||
relation component id "member:org.quixos.web-studio.has-react-component:component" : optional-one interface ReactComponent {
|
||||
resolve id "operation:org.quixos.web-studio.has-react-component:component:resolve";
|
||||
}
|
||||
}
|
||||
|
||||
package ComponentRuntime id "package:component-runtime" revision "package:component-runtime@1" source {
|
||||
repository "https://repos.quixos.org/quixos-test/package-component-runtime.git";
|
||||
commit "4444444444444444444444444444444444444444";
|
||||
} {
|
||||
constructor createComponent id "export:component-runtime:create-component" constructs ProjectComponent : atom-ref<Project>;
|
||||
operation propsGet id "export:component-runtime:props-get" : unit -> string mode call receiver atom ProjectComponent requires {
|
||||
edge subject id "port:component:subject" : exactly-one atom Project [resolve];
|
||||
state projectName id "port:component:project-name" : string [read];
|
||||
};
|
||||
}
|
||||
|
||||
shared state ProjectName id "slot:project:name" on Project : string
|
||||
policy optimistic-register default "Untitled project";
|
||||
shared edge ProjectComponentEdge id "edge:project:component" {
|
||||
atom ProjectComponent projection subject id "projection:component:subject" exactly-one;
|
||||
atom Project projection component id "projection:project:component" optional-one;
|
||||
}
|
||||
|
||||
conform Project as HasReactComponent {
|
||||
bind component.resolve to edge ProjectComponentEdge.component.resolve;
|
||||
materialize component if absent using constructor ProjectComponent via edge ProjectComponentEdge.subject;
|
||||
}
|
||||
conform ProjectComponent as ReactComponent {
|
||||
bind props.get to package ComponentRuntime.propsGet with {
|
||||
subject to edge ProjectComponentEdge.subject;
|
||||
projectName to state ProjectName via edge ProjectComponentEdge.subject;
|
||||
};
|
||||
}
|
||||
|
||||
constructor ProjectComponent to ComponentRuntime.createComponent;
|
||||
}
|
||||
Reference in New Issue
Block a user