boolean: valid: # literal true - "true" # literal false - "false" invalid: # invalid keyword - "T" - "F" # case sensitive - "True" # case sensitive - "False" string: valid: # simple string - '"test"' # parens are not special - '"(test)"' # empty string - '""' # asterisk is not special - '"test*"' # with UTF-8 characters - '"日本語"' # escape - '"\""' - '"a\"b\"c"' invalid: # single quote - "'abc'" # no quote - 'test' # right double quotation only - 'test"' # left double quotation only - '"test' integer: valid: # simple number - '0' - '1' - '2' - '123' # 0 padding - '00' - '01' - '02' - '00000123' # positive - '+0' - '+1' - '+2' - '+123' # positive with padding - '+00' - '+01' - '+02' - '+00000123' # negative - '-0' - '-1' - '-2' - '-123' # negative with padding - '-00' - '-01' - '-02' - '-00000123' invalid: # positive sign - '+' # negative sign - '-' # empty - '' # float - '0.1' # dot heading - '.1' # with symbol - '1a' - 'a1' float: valid: - '0.1' - '1.0' - '01.0' - '+1.0' - '+01.1' - '-1.0' - '-01.0' - '+0.0' - '-0.0' - '0.1e3' - '1.9E100' invalid: - '-1' - '+1' - '' - '.1' - '0.1a' - '0.a1' - '0.1e' variable: valid: - '$a' - '$abc' - '$a_b' - '$a0' - '$A' - '$AA' - '$日本語' invalid: - '$0' - '$' - '$ ' - 'a' - '' - '$$' - '$+' - '$-' data_expr: valid: # empty data expr - "''" # literal data expr - "'test'" # parens are not special - "'(test)'" # wildcard - "'*.a'" # UTF-8 characters - "'日本語'" # escape by backslash - "'\\'a'" # nonexistence - "null" invalid: # no single quotes - "test" # no post single quote - "'test" # no pre single quote - "test'" # invalid escape - "'\\'" - "\\''" package_expr: valid: - "&abc" - "&a" - "&A" - "&_" invalid: - "&" - "&&" rule_expr: valid: - 'Main' - '日本語' - 'a' - 'End1' invalid: - '/Main/' - 'Main/' - '//Main' - '' - '/' - '//' - "End" ticket_expr: valid: # identifiers with no paddings - "" - "" - "" invalid: # not identifier - "<1>" # with right padding - "" # with left padding - "< T>" # with both padding - "< T >" # with inner padding - "" feature: valid: - "+A" - "-A" - "?A" - "^A" - "!A" - "*" - "**"