269 lines
5.3 KiB
Text
269 lines
5.3 KiB
Text
================================================================================
|
|
Declare a shape inside a container
|
|
================================================================================
|
|
foo.baz
|
|
foo.bar.biz
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key) (dot)
|
|
(shape (shape_key))
|
|
)
|
|
(container
|
|
(container_key) (dot)
|
|
(container
|
|
(container_key) (dot)
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Use quoted string as keys
|
|
================================================================================
|
|
'foo'.'baz'
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key (string (string_fragment))) (dot)
|
|
(shape (shape_key (string (string_fragment))))
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Declare container inside a container using block
|
|
================================================================================
|
|
|
|
foo: {
|
|
bar: {
|
|
baz: {
|
|
biz
|
|
}
|
|
}
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Declare labeled container inside a labeled container using block
|
|
================================================================================
|
|
|
|
foo: Foo {
|
|
bar: Bar {
|
|
baz: Baz {
|
|
biz: Biz
|
|
}
|
|
}
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(shape (shape_key) (label))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Declare many shapes inside a container
|
|
================================================================================
|
|
|
|
foo: {
|
|
bar
|
|
biz
|
|
baz
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
================================================================================
|
|
Declare a container with complex keys
|
|
================================================================================
|
|
|
|
Foo biz bar: {
|
|
bar biz baz: {
|
|
-biz-baz-Baz-: {
|
|
Helo world
|
|
}
|
|
}
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Declare a container with complex keys and labels
|
|
================================================================================
|
|
|
|
Foo biz bar: Biz biz Bar {
|
|
bar biz baz: baz baz biz {
|
|
-biz-baz-Baz-: Biz buz Baz {
|
|
Helo world
|
|
}
|
|
}
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Declare shapes sparsely in a container
|
|
================================================================================
|
|
|
|
Foo: Baz {
|
|
|
|
biz
|
|
|
|
baz
|
|
|
|
bar
|
|
|
|
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Declare shapes in a container in single-line (Issue #11)
|
|
================================================================================
|
|
primty: Primitive types {
|
|
Never: {"!"}
|
|
|
|
Boolean: {bool}
|
|
|
|
Textual: {char; str}
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(container
|
|
(container_key)
|
|
(label)
|
|
(block
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(shape
|
|
(shape_key (string (string_fragment)))
|
|
)
|
|
)
|
|
)
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
(container
|
|
(container_key)
|
|
(block
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|