Implement capability generics, checked package specializations and CRUD scaffolding
Add kinded parameters, capability bounds, Self, aliases and closed application identities. Check generic implementations universally and build candidate-specific codecs and descriptors from immutable schemas. Preserve lexical aliases and exact dispatch identities in package and host bindings. Add an imperative CRUD+index domain scaffold with explicit soft-deletion semantics, source/codegen regression coverage, installed CLI tests and an authoring guide. Existing Web Studio opaque props and class-level create-menu migration are separate from the implemented language core.
This commit is contained in:
@@ -1,213 +1,227 @@
|
||||
WORKSPACE=1
|
||||
FRAGMENT=2
|
||||
IMPORT=3
|
||||
EXTERNAL=4
|
||||
ATOM=5
|
||||
INTERFACE=6
|
||||
INTERFACES=7
|
||||
PACKAGE=8
|
||||
VALUE=9
|
||||
RELATION=10
|
||||
OPERATION=11
|
||||
FUNCTION=12
|
||||
CONSTRUCTOR=13
|
||||
CONSTRUCTS=14
|
||||
INPUT=15
|
||||
CONFORM=16
|
||||
AS=17
|
||||
BIND=18
|
||||
TO=19
|
||||
PRIVATE=20
|
||||
SHARED=21
|
||||
STATE=22
|
||||
EDGE=23
|
||||
PROJECTION=24
|
||||
WITH=25
|
||||
USING=26
|
||||
VIA=27
|
||||
MATERIALIZE=28
|
||||
IF=29
|
||||
ABSENT=30
|
||||
ON=31
|
||||
POLICY=32
|
||||
DEFAULT=33
|
||||
SOURCE=34
|
||||
REPOSITORY=35
|
||||
COMMIT=36
|
||||
REVISION=37
|
||||
SEMANTIC_MAJOR=38
|
||||
ON_DELETE=39
|
||||
RETAIN_OTHER=40
|
||||
KEYED=41
|
||||
PUBLIC_TRAVERSAL=42
|
||||
ID=43
|
||||
DOC=44
|
||||
MODE=45
|
||||
EMITS=46
|
||||
RECEIVER=47
|
||||
REQUIRES=48
|
||||
ANY=49
|
||||
GET=50
|
||||
SET=51
|
||||
WATCH=52
|
||||
START=53
|
||||
STOP=54
|
||||
READ=55
|
||||
WRITE=56
|
||||
RESOLVE=57
|
||||
CONNECT=58
|
||||
DISCONNECT=59
|
||||
CALL=60
|
||||
WATCH_START=61
|
||||
WATCH_STOP=62
|
||||
SUBSCRIBE=63
|
||||
UNSUBSCRIBE=64
|
||||
OPTIMISTIC_REGISTER=65
|
||||
CRDT=66
|
||||
OPTIONAL_ONE=67
|
||||
EXACTLY_ONE=68
|
||||
MANY_UNIQUE=69
|
||||
MANY=70
|
||||
ORDERED=71
|
||||
UNIT=72
|
||||
WATCH_HANDLE=73
|
||||
MESSAGE=74
|
||||
ATOM_REF=75
|
||||
INTERFACE_REF=76
|
||||
OPTIONAL=77
|
||||
LIST=78
|
||||
RECORD=79
|
||||
BOOL=80
|
||||
BYTES=81
|
||||
DOUBLE=82
|
||||
INT32=83
|
||||
INT64=84
|
||||
STRING=85
|
||||
UINT32=86
|
||||
UINT64=87
|
||||
TRUE=88
|
||||
FALSE=89
|
||||
NULL=90
|
||||
ARROW=91
|
||||
COLON=92
|
||||
SEMI=93
|
||||
COMMA=94
|
||||
DOT=95
|
||||
LBRACE=96
|
||||
RBRACE=97
|
||||
LBRACK=98
|
||||
RBRACK=99
|
||||
LPAREN=100
|
||||
RPAREN=101
|
||||
LT=102
|
||||
GT=103
|
||||
INTEGER=104
|
||||
JSON_NUMBER=105
|
||||
IDENTIFIER=106
|
||||
STRING_LITERAL=107
|
||||
LINE_COMMENT=108
|
||||
BLOCK_COMMENT=109
|
||||
WS=110
|
||||
TYPE=2
|
||||
OBJECT=3
|
||||
STORABLE=4
|
||||
IMPLEMENTS=5
|
||||
REF=6
|
||||
FRAGMENT=7
|
||||
IMPORT=8
|
||||
EXTERNAL=9
|
||||
ATOM=10
|
||||
INTERFACE=11
|
||||
INTERFACES=12
|
||||
PACKAGE=13
|
||||
VALUE=14
|
||||
RELATION=15
|
||||
OPERATION=16
|
||||
FUNCTION=17
|
||||
CONSTRUCTOR=18
|
||||
CONSTRUCTS=19
|
||||
INPUT=20
|
||||
CONFORM=21
|
||||
AS=22
|
||||
BIND=23
|
||||
TO=24
|
||||
PRIVATE=25
|
||||
SHARED=26
|
||||
STATE=27
|
||||
EDGE=28
|
||||
PROJECTION=29
|
||||
WITH=30
|
||||
USING=31
|
||||
VIA=32
|
||||
MATERIALIZE=33
|
||||
IF=34
|
||||
ABSENT=35
|
||||
ON=36
|
||||
POLICY=37
|
||||
DEFAULT=38
|
||||
SOURCE=39
|
||||
REPOSITORY=40
|
||||
COMMIT=41
|
||||
REVISION=42
|
||||
SEMANTIC_MAJOR=43
|
||||
ON_DELETE=44
|
||||
RETAIN_OTHER=45
|
||||
KEYED=46
|
||||
PUBLIC_TRAVERSAL=47
|
||||
ID=48
|
||||
DOC=49
|
||||
MODE=50
|
||||
EMITS=51
|
||||
RECEIVER=52
|
||||
REQUIRES=53
|
||||
ANY=54
|
||||
GET=55
|
||||
SET=56
|
||||
WATCH=57
|
||||
START=58
|
||||
STOP=59
|
||||
READ=60
|
||||
WRITE=61
|
||||
RESOLVE=62
|
||||
CONNECT=63
|
||||
DISCONNECT=64
|
||||
CALL=65
|
||||
WATCH_START=66
|
||||
WATCH_STOP=67
|
||||
SUBSCRIBE=68
|
||||
UNSUBSCRIBE=69
|
||||
OPTIMISTIC_REGISTER=70
|
||||
CRDT=71
|
||||
OPTIONAL_ONE=72
|
||||
EXACTLY_ONE=73
|
||||
MANY_UNIQUE=74
|
||||
MANY=75
|
||||
ORDERED=76
|
||||
UNIT=77
|
||||
WATCH_HANDLE=78
|
||||
MESSAGE=79
|
||||
ATOM_REF=80
|
||||
INTERFACE_REF=81
|
||||
OPTIONAL=82
|
||||
LIST=83
|
||||
RECORD=84
|
||||
BOOL=85
|
||||
BYTES=86
|
||||
DOUBLE=87
|
||||
INT32=88
|
||||
INT64=89
|
||||
STRING=90
|
||||
UINT32=91
|
||||
UINT64=92
|
||||
TRUE=93
|
||||
FALSE=94
|
||||
NULL=95
|
||||
ARROW=96
|
||||
COLON=97
|
||||
SEMI=98
|
||||
COMMA=99
|
||||
DOT=100
|
||||
LBRACE=101
|
||||
RBRACE=102
|
||||
LBRACK=103
|
||||
RBRACK=104
|
||||
LPAREN=105
|
||||
RPAREN=106
|
||||
LT=107
|
||||
GT=108
|
||||
AMP=109
|
||||
EQUAL=110
|
||||
INTEGER=111
|
||||
JSON_NUMBER=112
|
||||
IDENTIFIER=113
|
||||
STRING_LITERAL=114
|
||||
LINE_COMMENT=115
|
||||
BLOCK_COMMENT=116
|
||||
WS=117
|
||||
'workspace'=1
|
||||
'fragment'=2
|
||||
'import'=3
|
||||
'external'=4
|
||||
'atom'=5
|
||||
'interface'=6
|
||||
'interfaces'=7
|
||||
'package'=8
|
||||
'value'=9
|
||||
'relation'=10
|
||||
'operation'=11
|
||||
'function'=12
|
||||
'constructor'=13
|
||||
'constructs'=14
|
||||
'input'=15
|
||||
'conform'=16
|
||||
'as'=17
|
||||
'bind'=18
|
||||
'to'=19
|
||||
'private'=20
|
||||
'shared'=21
|
||||
'state'=22
|
||||
'edge'=23
|
||||
'projection'=24
|
||||
'with'=25
|
||||
'using'=26
|
||||
'via'=27
|
||||
'materialize'=28
|
||||
'if'=29
|
||||
'absent'=30
|
||||
'on'=31
|
||||
'policy'=32
|
||||
'default'=33
|
||||
'source'=34
|
||||
'repository'=35
|
||||
'commit'=36
|
||||
'revision'=37
|
||||
'semantic-major'=38
|
||||
'on-delete'=39
|
||||
'retain-other'=40
|
||||
'keyed'=41
|
||||
'public-traversal'=42
|
||||
'id'=43
|
||||
'doc'=44
|
||||
'mode'=45
|
||||
'emits'=46
|
||||
'receiver'=47
|
||||
'requires'=48
|
||||
'any'=49
|
||||
'get'=50
|
||||
'set'=51
|
||||
'watch'=52
|
||||
'start'=53
|
||||
'stop'=54
|
||||
'read'=55
|
||||
'write'=56
|
||||
'resolve'=57
|
||||
'connect'=58
|
||||
'disconnect'=59
|
||||
'call'=60
|
||||
'watch-start'=61
|
||||
'watch-stop'=62
|
||||
'subscribe'=63
|
||||
'unsubscribe'=64
|
||||
'optimistic-register'=65
|
||||
'crdt'=66
|
||||
'optional-one'=67
|
||||
'exactly-one'=68
|
||||
'many-unique'=69
|
||||
'many'=70
|
||||
'ordered'=71
|
||||
'unit'=72
|
||||
'watch-handle'=73
|
||||
'message'=74
|
||||
'atom-ref'=75
|
||||
'interface-ref'=76
|
||||
'optional'=77
|
||||
'list'=78
|
||||
'record'=79
|
||||
'bool'=80
|
||||
'bytes'=81
|
||||
'double'=82
|
||||
'int32'=83
|
||||
'int64'=84
|
||||
'string'=85
|
||||
'uint32'=86
|
||||
'uint64'=87
|
||||
'true'=88
|
||||
'false'=89
|
||||
'null'=90
|
||||
'->'=91
|
||||
':'=92
|
||||
';'=93
|
||||
','=94
|
||||
'.'=95
|
||||
'{'=96
|
||||
'}'=97
|
||||
'['=98
|
||||
']'=99
|
||||
'('=100
|
||||
')'=101
|
||||
'<'=102
|
||||
'>'=103
|
||||
'type'=2
|
||||
'object'=3
|
||||
'storable'=4
|
||||
'implements'=5
|
||||
'ref'=6
|
||||
'fragment'=7
|
||||
'import'=8
|
||||
'external'=9
|
||||
'atom'=10
|
||||
'interface'=11
|
||||
'interfaces'=12
|
||||
'package'=13
|
||||
'value'=14
|
||||
'relation'=15
|
||||
'operation'=16
|
||||
'function'=17
|
||||
'constructor'=18
|
||||
'constructs'=19
|
||||
'input'=20
|
||||
'conform'=21
|
||||
'as'=22
|
||||
'bind'=23
|
||||
'to'=24
|
||||
'private'=25
|
||||
'shared'=26
|
||||
'state'=27
|
||||
'edge'=28
|
||||
'projection'=29
|
||||
'with'=30
|
||||
'using'=31
|
||||
'via'=32
|
||||
'materialize'=33
|
||||
'if'=34
|
||||
'absent'=35
|
||||
'on'=36
|
||||
'policy'=37
|
||||
'default'=38
|
||||
'source'=39
|
||||
'repository'=40
|
||||
'commit'=41
|
||||
'revision'=42
|
||||
'semantic-major'=43
|
||||
'on-delete'=44
|
||||
'retain-other'=45
|
||||
'keyed'=46
|
||||
'public-traversal'=47
|
||||
'id'=48
|
||||
'doc'=49
|
||||
'mode'=50
|
||||
'emits'=51
|
||||
'receiver'=52
|
||||
'requires'=53
|
||||
'any'=54
|
||||
'get'=55
|
||||
'set'=56
|
||||
'watch'=57
|
||||
'start'=58
|
||||
'stop'=59
|
||||
'read'=60
|
||||
'write'=61
|
||||
'resolve'=62
|
||||
'connect'=63
|
||||
'disconnect'=64
|
||||
'call'=65
|
||||
'watch-start'=66
|
||||
'watch-stop'=67
|
||||
'subscribe'=68
|
||||
'unsubscribe'=69
|
||||
'optimistic-register'=70
|
||||
'crdt'=71
|
||||
'optional-one'=72
|
||||
'exactly-one'=73
|
||||
'many-unique'=74
|
||||
'many'=75
|
||||
'ordered'=76
|
||||
'unit'=77
|
||||
'watch-handle'=78
|
||||
'message'=79
|
||||
'atom-ref'=80
|
||||
'interface-ref'=81
|
||||
'optional'=82
|
||||
'list'=83
|
||||
'record'=84
|
||||
'bool'=85
|
||||
'bytes'=86
|
||||
'double'=87
|
||||
'int32'=88
|
||||
'int64'=89
|
||||
'string'=90
|
||||
'uint32'=91
|
||||
'uint64'=92
|
||||
'true'=93
|
||||
'false'=94
|
||||
'null'=95
|
||||
'->'=96
|
||||
':'=97
|
||||
';'=98
|
||||
','=99
|
||||
'.'=100
|
||||
'{'=101
|
||||
'}'=102
|
||||
'['=103
|
||||
']'=104
|
||||
'('=105
|
||||
')'=106
|
||||
'<'=107
|
||||
'>'=108
|
||||
'&'=109
|
||||
'='=110
|
||||
|
||||
Reference in New Issue
Block a user