{"name":"ObjectScript Macros","scopeName":"source.objectscript_macros","patterns":[{"include":"#include"},{"include":"#dim"},{"include":"#define"},{"include":"#def1arg"},{"include":"#ifdef"},{"include":"#comment-line"}],"repository":{"comment-line":{"patterns":[{"name":"comment.line.objectscript","match":"^///.*$"},{"name":"comment.line.objectscript","match":"\\s+//.*$"},{"name":"comment.line.objectscript","match":"\\s+;.*$"},{"name":"comment.line.objectscript","match":"^\\s*#;.*$"},{"name":"comment.block.objectscript","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.objectscript"}},"endCaptures":{"0":{"name":"punctuation.definition.objectscript"}}}]},"continue":{"patterns":[{"name":"keyword.control.objectscript","match":"(\\s+\\#\\#(?i)(continue)\\s*)"}]},"def1arg":{"patterns":[{"name":"meta.preprocessor.objectscript","begin":"^\\s*(\\#\\s*(?:(?i)def1arg))\\s+((?\u003cid\u003e[a-zA-Z%][a-zA-Z0-9]*))(?:(\\()(\\s*\\g\u003cid\u003e\\s*)(\\)))","end":"(?\u003c!\\#\\#continue)\\n","patterns":[{"include":"#comment-line"},{"include":"#continue"},{"include":"#digits"},{"include":"#macros"},{"include":"source.objectscript"}],"beginCaptures":{"1":{"name":"keyword.control.objectscript"},"2":{"name":"entity.name.objectscript"},"4":{"name":"punctuation.definition.objectscript"},"5":{"name":"variable.parameter.objectscript"},"6":{"name":"punctuation.definition.objectscript"}}}]},"define":{"patterns":[{"name":"meta.preprocessor.objectscript","begin":"^\\s*(\\#\\s*(?:(?i)define))\\s+((?\u003cid\u003e[a-zA-Z%][a-zA-Z0-9]*))(?:(\\()(\\s*\\g\u003cid\u003e\\s*((,)\\s*\\g\u003cid\u003e\\s*)*)(\\)))?","end":"(?\u003c!\\#\\#continue)\\n","patterns":[{"include":"#comment-line"},{"include":"#continue"},{"include":"#macros"},{"include":"source.objectscript"}],"beginCaptures":{"1":{"name":"keyword.control.objectscript"},"2":{"name":"entity.name.objectscript"},"4":{"name":"punctuation.definition.objectscript"},"5":{"name":"variable.parameter.objectscript"},"7":{"name":"punctuation.definition.objectscript"}}}]},"dim":{"patterns":[{"name":"meta.preprocessor.objectscript","match":"^\\s*(\\#\\s*(?:(?i)dim))\\s+((?\u003cid\u003e[a-zA-Z%][a-zA-Z0-9]*))(?:\\s*(,)\\s*((\\g\u003cid\u003e)*))*(?:\\s+((?i)As)(?:\\s(\\g\u003cid\u003e(?:\\.\\g\u003cid\u003e)*)))?","captures":{"1":{"name":"keyword.control.objectscript"},"2":{"name":"variable.name"},"4":{"name":"punctuation.definition.objectscript"},"5":{"name":"variable.name"},"7":{"name":"keyword.control.objectscript"},"8":{"name":"entity.name.class.objectscript"}}}]},"ifdef":{"patterns":[{"contentName":"meta.preprocessor.objectscript","begin":"^\\s*(#\\s*(?i)(?:if|ifdef|ifndef|elif|else|undef|endif))\\b","end":"(?=(?:;|//|/\\*))|$","patterns":[{"include":"#digits"},{"include":"#comment-line"}],"beginCaptures":{"1":{"name":"keyword.control.objectscript"}}}]},"include":{"patterns":[{"begin":"^\\s*(\\#\\s*(?:(?i)include))\\s+([a-zA-Z%][a-zA-Z0-9]*)","end":"(?=$)","beginCaptures":{"1":{"name":"keyword.other.objectscript"},"2":{"name":"entity.name.objectscript"}}}]},"macros":{"patterns":[{"name":"support.constant","match":"\\$\\$\\$[a-zA-Z]([a-zA-Z0-9])*"}]}}}