"time_left", "time_out", "when_closed", "when_open", "when_on",
"when_off", "with_key"]
"time_left", "time_out", "when_closed", "when_open", "when_on",
"when_off", "with_key"]
-keywords = ["box", "break", "continue", "do", "else", "font off", "font on",
+extension_properties = ["pname"]
+
+keywords = ["box", "break", "continue", "do", "else", "font",
"for", "give", "has", "hasnt", "if", "in", "inversion", "jump",
"move", "new_line", "notin", "objectloop", "ofclass", "or",
"print", "print_ret", "provides", "quit", "read", "remove",
"restore", "return", "rfalse", "rtrue", "save", "spaces",
"string", "style bold", "style fixed", "style reverse",
"style roman", "style underline", "switch", "to", "until",
"for", "give", "has", "hasnt", "if", "in", "inversion", "jump",
"move", "new_line", "notin", "objectloop", "ofclass", "or",
"print", "print_ret", "provides", "quit", "read", "remove",
"restore", "return", "rfalse", "rtrue", "save", "spaces",
"string", "style bold", "style fixed", "style reverse",
"style roman", "style underline", "switch", "to", "until",
- (r'"[^"]*"', String.Double),
- (r"'[^']*'", String.Single),
- (r"\S+:", Name.Label),
- (r"<<.+>>", Name.Label),
+ (r"[A-Za-z_,]+:", Name.Label),
+ (r"<.+?>", Name.Label),
(wordlist(objects), Name.Class),
(wordlist(keywords), Token.Keyword.Reserved),
(wordlist(properties), Name.Builtin),
(wordlist(directives), Name.Entity),
(wordlist(attributes), Name.Attribute),
(wordlist(objects), Name.Class),
(wordlist(keywords), Token.Keyword.Reserved),
(wordlist(properties), Name.Builtin),
(wordlist(directives), Name.Entity),
(wordlist(attributes), Name.Attribute),
(r'[a-zA-Z_][a-zA-Z0-9_.]*', Name),
(r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
(r'[a-zA-Z_][a-zA-Z0-9_.]*', Name),
(r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
+
+ 'stringdouble': [
+ (r'"', String.Double, '#pop'),
+ (r'.', String.Double),
+ (r'\n', String.Double),
+ ],
+
+ 'stringsingle': [
+ (r"'", String.Single, '#pop'),
+ (r'.', String.Single),
+ ],