Apple III Business BASIC

This commit is contained in:
Kelvin Sherlock 2014-02-16 16:54:40 -05:00
parent a68880880f
commit 12f06c6d10

View File

@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array/>
<key>name</key>
<string>Apple III Business BASIC</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>^\s*\d+</string>
<key>name</key>
<string>entity.name.function</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.function</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function</string>
</dict>
</dict>
<key>match</key>
<string>\b(?i:DEF\s+FN)\s*([A-Za-z_][A-Za-z0-9_]*)\b</string>
<key>name</key>
<string>meta.def.fn</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.quoted.double</string>
</dict>
<dict>
<key>comment</key>
<string>may end at : ?</string>
<key>match</key>
<string>\b(?i:REM)\b.*$</string>
<key>name</key>
<string>comment.line</string>
</dict>
<dict>
<key>match</key>
<string>(\d+\.\d*|\.\d+|\d+)([eE][+-]?\d+)?</string>
<key>name</key>
<string>constant.numeric</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.function</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.function</string>
</dict>
</dict>
<key>match</key>
<string>\b(?i:FN)\s*([A-Za-z][A-Za-z0-9.]*)\s*(?=\()</string>
<key>name</key>
<string>meta.fn</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.external</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function</string>
</dict>
</dict>
<key>match</key>
<string>\b(?i:PERFORM)\s+([A-Za-z][A-Za-z0-9.]*)(?=\()</string>
<key>name</key>
<string>meta.perform</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.external</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>support.function</string>
</dict>
</dict>
<key>match</key>
<string>\b(?i:EXFN%?)(\.)([A-Za-z][A-Za-z0-9.]*)(?=\()</string>
<key>name</key>
<string>meta.exfn</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:INVOKE|PERFORM|EXFN)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.external</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:EXFN)%</string>
<key>name</key>
<string>keyword.external</string>
</dict>
<dict>
<key>comment</key>
<string># screws up \b</string>
<key>match</key>
<string>(?i:ON|OFF)\s+(?i:EOF)#</string>
<key>name</key>
<string>keyword.control</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:ON|OFF)\s+(?i:ERR|KBD)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.control</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:FOR|NEXT|STEP|TO|POP|RETURN|ELSE|IF|GOTO|GOSUB|THEN|ON|OFF|RESUME|TRACE|NOTRACE)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.control</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:DATA|GET|INPUT|READ|RESTORE)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.input</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:CLOSE|INPUT|OPEN|OUTPUT|PRINT|READ|WRITE)#</string>
<key>name</key>
<string>keyword.file</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:CAT|CATALOG|CLOSE|CREATE|DELETE|EXEC|LOCK|RENAME|UNLOCK)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.file</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:AS)\s(?i:EXTENSION|INPUT|OUTPUT)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.file.as</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:REC|TYP)(?=\()</string>
<key>name</key>
<string>support.function.file</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:DEL|HOME|INVERSE|LIST|NORMAL|PRINT|\?|WINDOW|IMAGE|USING)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.screen</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:SPC|TAB)(?=\()</string>
<key>name</key>
<string>support.function.screen</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:DIM|LET|SWAP)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.variable</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:CHAIN|CLEAR|CONT|END|LOAD|NEW|RUN|SAVE|STOP)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.utility</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:CONV)[$%&amp;]?(?=\()</string>
<key>name</key>
<string>support.function.conversion</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:ASC|CHR\$|HEX\$|INSTR|LEFT\$|LEN|MID\$|RIGHT\$|STR\$|SUB\$|TEN|VAL)(?=\()</string>
<key>name</key>
<string>support.function.string</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:ABS|EXP|INT|LOG|RND|SGN|SQR|ATN|COS|SIN|TAN|SCALE)(?=\()</string>
<key>name</key>
<string>support.function.arithmetic</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:DIV|MOD)\b</string>
<key>name</key>
<string>keyword.operator.mathematical</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:AND|OR|NOT)(?![$%&amp;])\b</string>
<key>name</key>
<string>keyword.operator.logical</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:EOF|ERR|ERRLIN|FRE|HPOS|INDENT|KBD|OUTREC|VPOS)(?![$%&amp;])\b</string>
<key>name</key>
<string>support.variable</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:PREFIX)\$</string>
<key>name</key>
<string>support.variable.dollar</string>
</dict>
<dict>
<key>match</key>
<string>[A-Za-z][A-Za-z0-9.]*[$%&amp;]?</string>
<key>name</key>
<string>variable</string>
</dict>
</array>
<key>scopeName</key>
<string>source.business-basic</string>
<key>uuid</key>
<string>AF5FFBB0-4A62-4A20-80A9-DB26CA3FA04A</string>
</dict>
</plist>