mirror of
https://github.com/MatthewCallis/language-65asm.git
synced 2024-06-03 07:29:27 +00:00
Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
765fce9827 | ||
|
e387111185 | ||
|
ada325129d | ||
|
ca009b986b | ||
|
aa5faf999f | ||
|
32ddd31469 | ||
|
3645d31d58 | ||
|
118052ebc8 | ||
|
4a5733826e | ||
|
6e4108ca91 | ||
|
0c3e7c9e25 | ||
|
2dcf07e67b | ||
|
e7976a5a95 | ||
|
124e6531f4 | ||
|
a0db8c9fbd | ||
|
cbcc0bfce6 | ||
|
707b9c8bd3 | ||
|
c5ff13055f | ||
|
a198b529b7 |
|
@ -1,3 +1,7 @@
|
||||||
|
# v10.4.0
|
||||||
|
|
||||||
|
* Fix operator regex for ACME grammar (again) [#17](https://github.com/MatthewCallis/language-65asm/pull/17)
|
||||||
|
|
||||||
# v10.0.0
|
# v10.0.0
|
||||||
|
|
||||||
* Add support for asm6 assembler
|
* Add support for asm6 assembler
|
||||||
|
|
|
@ -14,6 +14,7 @@ Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with ex
|
||||||
- [ORCA/M](http://www.byteworks.us/Byte_Works/Products.html)
|
- [ORCA/M](http://www.byteworks.us/Byte_Works/Products.html)
|
||||||
- [WLA-DX](http://www.villehelin.com/wla.html)
|
- [WLA-DX](http://www.villehelin.com/wla.html)
|
||||||
- [WTCTools by Western Design Center](http://westerndesigncenter.com/wdc/tools.cfm)
|
- [WTCTools by Western Design Center](http://westerndesigncenter.com/wdc/tools.cfm)
|
||||||
|
- [Kick Assembler](http://theweb.dk/KickAssembler/Main.html#frontpage)
|
||||||
|
|
||||||
Originally [converted](http://atom.io/docs/latest/converting-a-text-mate-bundle)
|
Originally [converted](http://atom.io/docs/latest/converting-a-text-mate-bundle)
|
||||||
from the various other TextMate bundles:
|
from the various other TextMate bundles:
|
||||||
|
@ -56,3 +57,5 @@ See last line in grammar files for names.
|
||||||
- [ARM9](https://github.com/ARM9)
|
- [ARM9](https://github.com/ARM9)
|
||||||
- [georgjz](https://github.com/georgjz)
|
- [georgjz](https://github.com/georgjz)
|
||||||
- [GoDot](http://www.godot64.de/)
|
- [GoDot](http://www.godot64.de/)
|
||||||
|
- [Carson Herrington](https://github.com/ProbablyNotArtyom)
|
||||||
|
- [Michael Lass](https://github.com/michaellass)
|
||||||
|
|
|
@ -124,8 +124,8 @@ repository:
|
||||||
}
|
}
|
||||||
# Operators
|
# Operators
|
||||||
{
|
{
|
||||||
match: '\\!|\\+|\\-|\\/|\\*|<<|>>|&|\\||\\^|=|<|>|\\:|\\|\\|'
|
match: '\\!|\\+|\\-|\\/|\\*|<<|>>|&|\\||\\^|=|<|>|\\:'
|
||||||
name: 'keyword.operator'
|
name: 'keyword.operator.acme'
|
||||||
}
|
}
|
||||||
# Operators II
|
# Operators II
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Syntax Highlighting for the cc65 toolchain ans 6502 support
|
# Syntax Highlighting for the cc65 toolchain and 6502 support
|
||||||
|
|
||||||
scopeName: 'source.assembly.6502.cc65-toolchain'
|
scopeName: 'source.assembly.6502.cc65-toolchain'
|
||||||
name: '6502 Assembly (cc65)' # Name shown in Atom Editor grammar selection
|
name: '6502 Assembly (cc65)' # Name shown in Atom Editor grammar selection
|
||||||
|
|
171
grammars/kickass.cson
Normal file
171
grammars/kickass.cson
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
scopeName: 'source.assembly.6502.kickass'
|
||||||
|
name: 'Kick Assembler'
|
||||||
|
|
||||||
|
fileTypes: [
|
||||||
|
'a'
|
||||||
|
'asm'
|
||||||
|
's'
|
||||||
|
'S'
|
||||||
|
]
|
||||||
|
|
||||||
|
patterns: [
|
||||||
|
{ include: 'source.65c02-opcodes' }
|
||||||
|
{ include: 'source.6502x-opcodes' }
|
||||||
|
{ include: '#comments' }
|
||||||
|
{ include: '#directives' }
|
||||||
|
{ include: '#symbols' }
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
repository:
|
||||||
|
comments:
|
||||||
|
patterns: [
|
||||||
|
{
|
||||||
|
match: '(\\/\\/[^\\n]+)'
|
||||||
|
name: 'comment.line'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
begin: '\\/\\*'
|
||||||
|
end: '\\*\\/'
|
||||||
|
name: 'comment.block'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
symbols:
|
||||||
|
patterns: [
|
||||||
|
|
||||||
|
# ===============================================================
|
||||||
|
# Assembler symbols
|
||||||
|
{ # Labels
|
||||||
|
match: '^\\s*[a-zA-Z_][a-zA-Z0-9_]*:'
|
||||||
|
name: 'entity.name.function.kickass'
|
||||||
|
}
|
||||||
|
{ # Local labels
|
||||||
|
match: '!(:|[\\+\\-]+)'
|
||||||
|
name: 'entity.name.function.kickass'
|
||||||
|
}
|
||||||
|
{ # Variable functions, like var.getValue()
|
||||||
|
match: '(\\w+(?=\\())'
|
||||||
|
name: 'entity.name.function.kickass'
|
||||||
|
}
|
||||||
|
|
||||||
|
# ===============================================================
|
||||||
|
# Data types
|
||||||
|
{ # Chars
|
||||||
|
match: "\\'\\S\\'"
|
||||||
|
name: 'string.char.kickass'
|
||||||
|
}
|
||||||
|
{ # Strings
|
||||||
|
begin: '"'
|
||||||
|
end: '"'
|
||||||
|
name: 'string.quoted.kickass'
|
||||||
|
}
|
||||||
|
|
||||||
|
{ # Hex numbers
|
||||||
|
match: '-?\\$[A-Fa-f0-9]+'
|
||||||
|
name: 'constant.numeric.hex.kickass'
|
||||||
|
}
|
||||||
|
{ # Octals
|
||||||
|
match: '@([0-7]+)\\b'
|
||||||
|
name: 'constant.numeric.octal.kickass'
|
||||||
|
}
|
||||||
|
{ # Binary numbers
|
||||||
|
match: '%[01]+'
|
||||||
|
name: 'constant.numeric.binary.kickass'
|
||||||
|
}
|
||||||
|
{ # Decimal numbers
|
||||||
|
match: '\\b([0-9]+)\\b'
|
||||||
|
name: 'constant.numeric.decimal.kickass'
|
||||||
|
}
|
||||||
|
{ # Immediate values
|
||||||
|
match: '\\#([^\\s]+)'
|
||||||
|
name: 'constant.numeric.hex.kickass'
|
||||||
|
}
|
||||||
|
{ # Constants
|
||||||
|
match: '\\b([_A-Z][_A-Z0-9]+)\\b'
|
||||||
|
name: 'variable.kickass'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
directives:
|
||||||
|
patterns: [
|
||||||
|
|
||||||
|
# ===============================================================
|
||||||
|
# Preprocessor directives
|
||||||
|
{
|
||||||
|
match: '(\\#)((?:define|undef))([\\s\\w]+)'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
3: name: 'variable.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(\\#)((?:endif|el(se|if)|if|importif))([\\s\\w]+)'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
4: name: 'variable.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(\\#)((import(once)?))([\\s\\w]+)'
|
||||||
|
name: 'keyword.control.directive.kickass'
|
||||||
|
}
|
||||||
|
|
||||||
|
# ===============================================================
|
||||||
|
# Assembler directive conditionals
|
||||||
|
{
|
||||||
|
match: '(\\.)((?:elif|if))'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(\\}?(\\s+)?)(else)'
|
||||||
|
captures:
|
||||||
|
3: name: 'keyword.control.directive.kickass'
|
||||||
|
}
|
||||||
|
|
||||||
|
# ===============================================================
|
||||||
|
# Assembler directives misc
|
||||||
|
{ # Assembler directives that have inconsistant syntax
|
||||||
|
match: '(\\.)((?:return|namespace|print(now)?|by(te)?|align|assert(error)?|break|disk|dw(ord)?|encoding|enum|error(if)?|file(modify|namespace)?|fill(word)?|for|lohifill|memblock|modify|pc|plugin|pseudopc|segment(def|out)?|struct|te(xt)?|while|wo(rd)?|zp|import( binary| c64| source| text|once)))\\b'
|
||||||
|
name: 'keyword.control.directive.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(\\}?(\\s+)?)(else)'
|
||||||
|
captures:
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
}
|
||||||
|
|
||||||
|
# ===============================================================
|
||||||
|
# Variables and Macros
|
||||||
|
{
|
||||||
|
match: '(\\.)(var|eval|const|label)(\\s*[a-zA-Z0-9_]*)(\\s*=)?'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
3: name: 'support.function.kickass'
|
||||||
|
4: name: 'keyword.operator.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(?:\\()(var|eval|const|label)(?=\\s*[a-zA-Z0-9_]*)'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'support.function.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(\\.)(function|macro)([\\s\\w_.]*)(\\()([^)]*)(\\))'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
3: name: 'entity.name.function.kickass'
|
||||||
|
4: name: 'keyword.operator.kickass'
|
||||||
|
5: name: 'constant.variable.kickass'
|
||||||
|
6: name: 'keyword.operator.kickass'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match: '(\\.)(pseudocommand)(\\s+)([^\\s\\n]+)'
|
||||||
|
captures:
|
||||||
|
1: name: 'keyword.control.directive.kickass'
|
||||||
|
2: name: 'keyword.control.directive.kickass'
|
||||||
|
4: name: 'entity.name.function.kickass'
|
||||||
|
}
|
||||||
|
]
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "language-65asm",
|
"name": "language-65asm",
|
||||||
"version": "10.0.0",
|
"version": "10.5.0",
|
||||||
"description": "Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with extra support for various compilers.",
|
"description": "Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with extra support for various compilers.",
|
||||||
"repository": "git@github.com:MatthewCallis/language-65asm.git",
|
"repository": "git@github.com:MatthewCallis/language-65asm.git",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user