{"name":"FIGlet Control File","scopeName":"source.figctrl","patterns":[{"name":"keyword.control.file.signature.figctrl","match":"\\Aflc2a(?=\\s|$)"},{"include":"#main"}],"repository":{"char":{"patterns":[{"name":"constant.character.escape.figctrl","match":"(\\\\)[ abefnrtv\\\\]","captures":{"1":{"name":"punctuation.definition.escape.backslash.figctrl"}}},{"name":"constant.character.escape.codepoint.figctrl","match":"(\\\\)[-+]?(?:0[Xx][A-Fa-f0-9]*|[0-9]+)","captures":{"1":{"name":"punctuation.definition.escape.backslash.figctrl"}}},{"name":"string.unquoted.character.literal.figctrl","match":"[^\\s\\\\]"}]},"comment":{"name":"comment.line.number-sign.figctrl","begin":"^#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.figctrl"}}},"extendedCommands":{"patterns":[{"name":"meta.extended.command.input-encoding.figctrl","begin":"^[bfhju]","end":"$","patterns":[{"include":"#invalidArgument"}],"beginCaptures":{"0":{"name":"keyword.operator.command.figctrl"}}},{"name":"meta.extended.command.input-encoding.figctrl","begin":"^g","end":"$","patterns":[{"match":"\\G\\s*(L|R)\\s*([0-3])?","captures":{"1":{"name":"storage.type.var.byte-half.figctrl"},"2":{"name":"constant.numeric.decimal.integer.int.figctrl"}}},{"match":"\\G\\s*([0-3])(?:\\s*(94x94|94|96)\\s*(\\\\ |\\S+))?","captures":{"1":{"name":"constant.numeric.decimal.integer.int.figctrl"},"2":{"name":"constant.language.size.figctrl"},"3":{"patterns":[{"include":"#char"}]}}},{"include":"#invalidArgument"}],"beginCaptures":{"0":{"name":"keyword.operator.command.figctrl"}}}]},"invalidArgument":{"name":"invalid.illegal.unexpected-argument.figctrl","match":"\\S+"},"main":{"patterns":[{"include":"#comment"},{"include":"#transform"},{"include":"#extendedCommands"},{"include":"#transformArgs"}]},"number":{"patterns":[{"name":"constant.numeric.hexadecimal.hex.integer.int.figctrl","match":"[-+]?0[Xx][0-9A-Fa-f]*"},{"name":"constant.numeric.decimal.integer.int.figctrl","match":"[-+]?[0-9]+"}]},"transform":{"name":"meta.transform.command.figctrl","begin":"^t","end":"$","patterns":[{"include":"#transformArgs"}],"beginCaptures":{"0":{"name":"keyword.operator.command.figctrl"}}},"transformArgs":{"name":"meta.transform.arguments.figctrl","match":"(?x)\n(?:^|\\G) \\s*\n\n# 1: meta.transform.argument.from.figctrl\n(\n\t(?:\n\t\t# 2: include: “#number”\n\t\t([-+]?0[Xx][0-9A-Fa-f]*|[-+]?[0-9]+)\n\t\t|\n\t\t# 3: include: “#char”\n\t\t(\\\\[ ]|(?:\\\\-)?[^-\\s]+)\n\t)\n\t(?:\n\t\t# 4: punctuation.separator.dash.range.figctrl\n\t\t(-)\n\t\t\n\t\t(?:\n\t\t\t# 5: include: “#number”\n\t\t\t([-+]?0[Xx][0-9A-Fa-f]*|[-+]?[0-9]+)\n\t\t\t|\n\t\t\t# 6: include: “#char”\n\t\t\t(\\\\[ ]|(?:\\\\-)?[^-\\s]+)\n\t\t)\n\t)?\n)\n\n\\s+\n\n# 7: meta.transform.argument.to.figctrl\n(\n\t(?:\n\t\t# 8: include: “#number”\n\t\t([-+]?0[Xx][0-9A-Fa-f]*|[-+]?[0-9]+)\n\t\t|\n\t\t# 9: include: “#char”\n\t\t(\\\\[ ]|(?:\\\\-)?[^-\\s]+)\n\t)\n\t(?:\n\t\t# 10: punctuation.separator.dash.range.figctrl\n\t\t(-)\n\t\t\n\t\t(?:\n\t\t\t# 11: include: “#number”\n\t\t\t([-+]?0[Xx][0-9A-Fa-f]*|[-+]?[0-9]+)\n\t\t\t|\n\t\t\t# 12: include: “#char”\n\t\t\t(\\\\[ ]|(?:\\\\-)?[^-\\s]+)\n\t\t)\n\t)?\n)\n\n# 13: Possible trailing comment\n(\\s+\\S.*)?","captures":{"1":{"name":"meta.transform.argument.from.figctrl"},"10":{"name":"punctuation.separator.dash.range.figctrl"},"11":{"patterns":[{"include":"#number"}]},"12":{"patterns":[{"include":"#char"}]},"13":{"patterns":[{"name":"comment.line.number-sign.figctrl","match":"(#).*","captures":{"1":{"name":"punctuation.definition.comment.figctrl"}}},{"name":"comment.line.implicit.figctrl","match":"[^\\s#].*"}]},"2":{"patterns":[{"include":"#number"}]},"3":{"patterns":[{"include":"#char"}]},"4":{"name":"punctuation.separator.dash.range.figctrl"},"5":{"patterns":[{"include":"#number"}]},"6":{"patterns":[{"include":"#char"}]},"7":{"name":"meta.transform.argument.to.figctrl"},"8":{"patterns":[{"include":"#number"}]},"9":{"patterns":[{"include":"#char"}]}}}}}
