327 lines
7.9 KiB
Text
327 lines
7.9 KiB
Text
================================================================================
|
|
Declare unquoted shape identifier with escape sequence (issue #21)
|
|
================================================================================
|
|
hello\[world\]
|
|
\#ello\[world\]
|
|
\# helloello\[world\]
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape
|
|
(shape_key
|
|
(escape_sequence)
|
|
(escape_sequence)
|
|
)
|
|
)
|
|
(shape
|
|
(shape_key
|
|
(escape_sequence)
|
|
(escape_sequence)
|
|
(escape_sequence)
|
|
)
|
|
)
|
|
(shape
|
|
(shape_key
|
|
(escape_sequence)
|
|
(escape_sequence)
|
|
(escape_sequence)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Handle end of file (issue #1)
|
|
================================================================================
|
|
foo
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Simple shape key
|
|
================================================================================
|
|
foo
|
|
bar
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Complex shape key
|
|
================================================================================
|
|
Foo bar
|
|
-Biz-baz-
|
|
imAShape
|
|
im_a$_shape
|
|
im a shape
|
|
i'm a shape
|
|
a-shape
|
|
changeTeam(member, props, ctx)
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Use quoted string as a shape key
|
|
================================================================================
|
|
'foo'
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key (string (string_fragment))))
|
|
)
|
|
|
|
================================================================================
|
|
Use escape sequence in quoted string as a shape key
|
|
================================================================================
|
|
'\# hello \# world'
|
|
|
|
"\# hello \# world"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key (string (string_fragment))))
|
|
(shape (shape_key (string
|
|
(escape_sequence)
|
|
(string_fragment)
|
|
(escape_sequence)
|
|
(string_fragment)
|
|
)))
|
|
)
|
|
|
|
================================================================================
|
|
Define multiple shapes using semicolons
|
|
================================================================================
|
|
a;b;c
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Labeled shapes
|
|
================================================================================
|
|
a: Foo Bar
|
|
a: Foo Bar; b: Biz Baz
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key) (colon) (label))
|
|
(shape (shape_key) (colon) (label))
|
|
(shape (shape_key) (colon) (label))
|
|
)
|
|
|
|
================================================================================
|
|
Label with escape sequence
|
|
================================================================================
|
|
a: Foo\nB\#ar
|
|
a: Foo\nB\@r; b: Biz\nBaz
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key) (colon) (label (escape_sequence) (escape_sequence)))
|
|
(shape (shape_key) (colon) (label (escape_sequence) (escape_sequence)))
|
|
(shape (shape_key) (colon) (label (escape_sequence)))
|
|
)
|
|
|
|
|
|
================================================================================
|
|
It should skip white spaces
|
|
================================================================================
|
|
|
|
foo
|
|
|
|
bar : Foo Bar; baz
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
(shape (shape_key) (colon) (label))
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Use quoted string as shape key and label
|
|
================================================================================
|
|
'foo': "Label"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape
|
|
(shape_key (string (string_fragment)))
|
|
(colon)
|
|
(label (string (string_fragment))))
|
|
)
|
|
|
|
================================================================================
|
|
Basic text block
|
|
================================================================================
|
|
foo: |
|
|
- hello
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape
|
|
(shape_key)
|
|
(colon)
|
|
(text_block
|
|
(raw_text)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Text block with specific language
|
|
================================================================================
|
|
foo: |go
|
|
|
|
awsSession := From(c.Request.Context())
|
|
|
|
client := s3.New(awsSession)
|
|
|
|
|
|
ctx, cancelFn := context.WithTimeout(c.Request.Context(), AWS_TIMEOUT)
|
|
|
|
defer cancelFn()
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape
|
|
(shape_key)
|
|
(colon)
|
|
(text_block
|
|
(language)
|
|
(raw_text)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Text block with quotes (custom escape characters)
|
|
================================================================================
|
|
foo: |$$$go
|
|
|
|
awsSession := From(c.Request.Context())
|
|
|
|
client := s3.New(awsSession)
|
|
|
|
|
|
ctx, cancelFn := context.WithTimeout(c.Request.Context(), AWS_TIMEOUT)
|
|
|
|
defer cancelFn()
|
|
$$$|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape
|
|
(shape_key)
|
|
(colon)
|
|
(text_block
|
|
(language)
|
|
(raw_text)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Online text block
|
|
================================================================================
|
|
foo: | helo world |
|
|
|
|
bar: |##md ## hello world ##|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape
|
|
(shape_key)
|
|
(colon)
|
|
(text_block
|
|
(raw_text)
|
|
)
|
|
)
|
|
(shape
|
|
(shape_key)
|
|
(colon)
|
|
(text_block
|
|
(language)
|
|
(raw_text)
|
|
)
|
|
)
|
|
)
|
|
|
|
================================================================================
|
|
Shape with oneline comment
|
|
================================================================================
|
|
foo # hello
|
|
# world
|
|
bar
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
(line_comment)
|
|
(line_comment)
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Shape with block comment
|
|
================================================================================
|
|
foo
|
|
|
|
"""
|
|
hello world
|
|
"""
|
|
|
|
bar
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key))
|
|
(block_comment)
|
|
(shape (shape_key))
|
|
)
|
|
|
|
================================================================================
|
|
Declare a shape with a parent container reference
|
|
================================================================================
|
|
_
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(shape (shape_key (keyword_underscore)))
|
|
)
|