1 Commits
master ... ACME

Author SHA1 Message Date
242aa2032f Prepare v10.1.0 release 2019-08-29 15:53:10 -07:00
6 changed files with 4 additions and 182 deletions

View File

@ -1,7 +1,3 @@
# v10.4.0
* Fix operator regex for ACME grammar (again) [#17](https://github.com/MatthewCallis/language-65asm/pull/17)
# v10.0.0
* Add support for asm6 assembler

View File

@ -14,7 +14,6 @@ Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with ex
- [ORCA/M](http://www.byteworks.us/Byte_Works/Products.html)
- [WLA-DX](http://www.villehelin.com/wla.html)
- [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)
from the various other TextMate bundles:
@ -57,5 +56,3 @@ See last line in grammar files for names.
- [ARM9](https://github.com/ARM9)
- [georgjz](https://github.com/georgjz)
- [GoDot](http://www.godot64.de/)
- [Carson Herrington](https://github.com/ProbablyNotArtyom)
- [Michael Lass](https://github.com/michaellass)

View File

@ -124,8 +124,8 @@ repository:
}
# Operators
{
match: '\\!|\\+|\\-|\\/|\\*|<<|>>|&|\\||\\^|=|<|>|\\:'
name: 'keyword.operator.acme'
match: '\!|\+|\-|\/|\|<<|>>|&|\||\^|=|<|>|\:'
name: 'keyword.operator'
}
# Operators II
{

View File

@ -1,4 +1,4 @@
# Syntax Highlighting for the cc65 toolchain and 6502 support
# Syntax Highlighting for the cc65 toolchain ans 6502 support
scopeName: 'source.assembly.6502.cc65-toolchain'
name: '6502 Assembly (cc65)' # Name shown in Atom Editor grammar selection

View File

@ -1,171 +0,0 @@
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'
}
]

View File

@ -1,6 +1,6 @@
{
"name": "language-65asm",
"version": "10.5.0",
"version": "10.1.0",
"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",
"license": "MIT",