設計目標

重要性順番で設計目標を並んでる.

構文概要

構文定義

<ton_stream>            ::= <ton> ( ( "\\n---\\n" <ton> )* )?
<ton>                   ::= <white_space> <ton_value> <white_space>
<ton_value>             ::= ( <type_identifer> )? <ton_bare_value>
<type_identifer>        ::= <type_identifer_mark> ( <type_identifer_char> )* <type_identifer_ending>
<type_identifer_mark>   ::= "!"
<type_identifer_ending> ::= " " | <type_separator>
<type_separator>        ::= ( ":" | <non_break_white_space> ) ( <non_break_white_space> )*
<ton_bare_value>        ::= <null_value> | <boolean_value> | <numeric_value> | <string> | <array> | <object>
<boolean_value>         ::= <true_value> | <false_value>
<white_space>           ::= ( <non_break_white_space> | <comment> | <line_break> )*
<line_break>            ::= "\\n" | "\\r" ( "\\n" )?
<null_value>            ::= "null"
<true_value>            ::= "true"
<false_value>           ::= "false"
<non_break_white_space> ::= ( " " | "\\t" )*
<string>                ::= <quoted_string> | <unquoted_string>
<array_begin>           ::= <white_space> "[" <white_space>
<array_end>             ::= <white_space> "]" <white_space>
<object_begin>          ::= <white_space> "{" <white_space>
<object_end>            ::= <white_space> "}" <white_space>
<value_seperator>       ::= <white_space> "," <white_space>
<name_seperator>        ::= <white_space> ":" <white_space>
<array>                 ::= <array_begin> ( <ton_value> ( <value_seperator> <ton_value> )* )? <array_end>
<object_member>         ::= <string> <name_seperator> <ton_value>
<object>                ::= <object_begin> ( <object_member> ( <value_seperator> <object_member> )* )? <object_end>
<comment_mark>          ::= "#"
<comment>               ::= <comment_mark> ( <non_break_char> )+ <line_break>
<numerical_sign>        ::= "-" | "+"
<numerical_frac>        ::= "." ( <number_char> )+
<numerical_exp>         ::= ( "e" | "E" ) ( <numerical_sign> )? <integer>
<numeric_value>         ::= ( <numerical_sign> )? ( <numerical_frac> | ( <integer> ( <numerical_frac> )? ) ) ( <numerical_exp> )?
<integer>               ::= ( <number_char> )+
<number_char>           ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<string_escape>         ::= "\\\\" ( "\\"" | "\\\\" | "/" | "b" | "n" | "r" | "t"
                          | ( "u" <hex_digit> <hex_digit> <hex_digit> <hex_digit> ) | ( "x" <hex_digit> <hex_digit>) )
<unquoted_string>       ::= ( <unquoted_string_char> | <string_escape> )+
<quoted_string>         ::= "\\"" ( <quoted_string_char> | <string_escape> )* "\\""
<type_identifer_char>   ::= <ascii_letter> | <number_char> | <ascii_non_space_ctl> | <non_ascii> | "-" | "."
<unquoted_string_char>  ::= <ascii_letter> | <number_char> | <ascii_non_space_ctl> | <non_ascii> | <ascii_non_tbon_mark> | "+" | "\\r" | "\\n" | "\\t" | " "
<quoted_string_char>    ::= <unquoted_string_char> | "[" | "]" | "{" | "}" | "," | ":" | "!" | "-" | "."
<non_break_char>        ::= <type_identifer_char> | <ascii_non_tbon_mark> | <non_break_white_space>
                          | "[" | "]" | "{" | "}" | "," | ":" | "!"
<url_safe_char>         ::= <ascii_letter> | <number_char> | "-" | "_" | "." | "~"
<ascii_letter>          ::= <ascii_lower_letter> | <ascii_upper_letter>
<ascii_non_space_ctl>   ::= "\\x00" | "\\x01" | "\\x02" | "\\x03" | "\\x04" | "\\x05" | "\\x06" | "\\x07"
                          | "\\x08" |                   "\\x0b" | "\\x0c" |          "\\x0e" | "\\x0f"
                          | "\\x10" | "\\x11" | "\\x12" | "\\x13" | "\\x14" | "\\x15" | "\\x16" | "\\x17"
                          | "\\x18" | "\\x19" | "\\x1a" | "\\x1b" | "\\x1c" | "\\x1d" | "\\x1e" | "\\x1f"
                          | "\\x7F"
<hex_digit>             ::= <number_char> | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F"
<ascii_non_tbon_mark>   ::= "$" | "%" | "&" | "'" | "(" | ")" | "*" | "<" | "=" | ">" | "?" | "@" | "^" | "`" | "|" | "_" | "~" | "/" | ";"
<ascii_lower_letter>    ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m"
                          | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
<ascii_upper_letter>    ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M"
                          | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
<non_ascii>             ::= "\\x80" | "\\x81" | "\\x82" | "\\x83" | "\\x84" | "\\x85" | "\\x86" | "\\x87" | "\\x88" | "\\x89" | "\\x8a" | "\\x8b" | "\\x8c" | "\\x8d" | "\\x8e" | "\\x8f"
                          | "\\x90" | "\\x91" | "\\x92" | "\\x93" | "\\x94" | "\\x95" | "\\x96" | "\\x97" | "\\x98" | "\\x99" | "\\x9a" | "\\x9b" | "\\x9c" | "\\x9d" | "\\x9e" | "\\x9f"
                          | "\\xa0" | "\\xa1" | "\\xa2" | "\\xa3" | "\\xa4" | "\\xa5" | "\\xa6" | "\\xa7" | "\\xa8" | "\\xa9" | "\\xaa" | "\\xab" | "\\xac" | "\\xad" | "\\xae" | "\\xaf"
                          | "\\xb0" | "\\xb1" | "\\xb2" | "\\xb3" | "\\xb4" | "\\xb5" | "\\xb6" | "\\xb7" | "\\xb8" | "\\xb9" | "\\xba" | "\\xbb" | "\\xbc" | "\\xbd" | "\\xbe" | "\\xbf"
                          | "\\xc0" | "\\xc1" | "\\xc2" | "\\xc3" | "\\xc4" | "\\xc5" | "\\xc6" | "\\xc7" | "\\xc8" | "\\xc9" | "\\xca" | "\\xcb" | "\\xcc" | "\\xcd" | "\\xce" | "\\xcf"
                          | "\\xd0" | "\\xd1" | "\\xd2" | "\\xd3" | "\\xd4" | "\\xd5" | "\\xd6" | "\\xd7" | "\\xd8" | "\\xd9" | "\\xda" | "\\xdb" | "\\xdc" | "\\xdd" | "\\xde" | "\\xdf"
                          | "\\xe0" | "\\xe1" | "\\xe2" | "\\xe3" | "\\xe4" | "\\xe5" | "\\xe6" | "\\xe7" | "\\xe8" | "\\xe9" | "\\xea" | "\\xeb" | "\\xec" | "\\xed" | "\\xee" | "\\xef"
                          | "\\xf0" | "\\xf1" | "\\xf2" | "\\xf3" | "\\xf4" | "\\xf5" | "\\xf6" | "\\xf7" | "\\xf8" | "\\xf9" | "\\xfa" | "\\xfb" | "\\xfc" | "\\xfd" | "\\xfe" | "\\xff"

問題点