Apple2BuildPipeline/pkg/Specifications/merlin.xclangspec
2018-07-21 11:15:30 -05:00

284 lines
7.1 KiB
Plaintext

// Merlin Assembler language specs
(
/****************************************************************************/
// MARK: Keywords
/****************************************************************************/
{
Identifier = "xcode.lang.asm.merlin.identifier";
Syntax = {
CaseSensitive = NO;
StartChars = ":;<=>?@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_{|}~";
Chars = "0123456789:;<=>?@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_{|}~";
Type = "xcode.syntax.identifier";
};
},
{
Identifier = "xcode.lang.asm.merlin.keyword";
Syntax = {
CaseSensitive = NO;
StartChars = ":;<=>?@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_{|}~";
Chars = "0123456789:;<=>?@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_{|}~";
Words = (
"]xcodestart",
"]xcodeend",
"adc",
"adcl",
"and",
"andl",
"asl",
"bcc",
"blt",
"bcs",
"bge",
"beq",
"bge",
"bit",
"blt",
"bmi",
"bne",
"bpl",
"bra",
"brk",
"brl",
"bvc",
"bvs",
"clc",
"cld",
"cli",
"clv",
"cmp",
"cmpl",
"cop",
"cpa",
"cpx",
"cpy",
"dec",
"dex",
"dey",
"eor",
"eorl",
"inc",
"inx",
"iny",
"jmp",
"jmpl",
"jsl",
"jsr",
"lda",
"ldal",
"ldx",
"ldy",
"lsr",
"mvn",
"mvp",
"nop",
"ora",
"oral",
"pea",
"pei",
"per",
"pha",
"phb",
"phd",
"phk",
"php",
"phx",
"phy",
"pla",
"plb",
"pld",
"plp",
"plx",
"ply",
"rep",
"rol",
"ror",
"rti",
"rtl",
"rts",
"sbc",
"sbcl",
"sec",
"sed",
"sei",
"sep",
"sta",
"stal",
"stp",
"stx",
"sty",
"stz",
"tax",
"tay",
"tcd",
"tad",
"tas",
"tcs",
"tdc",
"tda",
"trb",
"tsb",
"tsc",
"tsa",
"tsx",
"txa",
"txs",
"txy",
"tya",
"tyx",
"wai",
"wdm",
"xba",
"swa",
"xce",
"equ",
"ext",
"ent",
"org",
"dsk",
"sav",
"ds",
"rel",
"lnk",
"link",
"asm",
"sna",
"obj",
"put",
"putbin",
"use",
"var",
"knd",
"ali",
"typ",
"end",
"dum",
"dend",
"dat",
"asc",
"dci",
"inv",
"fls",
"rev",
"str",
"strl",
"da",
"dw",
"ddb",
"dfb",
"db",
"adr",
"adrl",
"hex",
"ds",
"do",
"else",
"if",
"fin",
"chk",
"err",
"lup",
"mx",
"usr",
"xc",
"mac",
"eom",
"<<<",
"pmc",
">>>",
);
Type = "xcode.syntax.keyword";
AltType = "xcode.syntax.identifier";
};
},
/****************************************************************************/
// MARK: Simple Syntax Coloring
/****************************************************************************/
{
Identifier = "xcode.lang.asm.merlin";
Description = "Merlin Assembler Coloring";
BasedOn = "xcode.lang.simpleColoring";
IncludeInMenu = YES;
Name = "Assembly (Merlin)";
Syntax = {
Tokenizer = "xcode.lang.asm.merlin.lexer";
IncludeRules = (
"xcode.lang.asm.merlin.codeblock",
);
Type = "xcode.syntax.plain";
};
},
{
Identifier = "xcode.lang.asm.merlin.lexer";
Syntax = {
IncludeRules = (
"xcode.lang.asm.merlin.comment.semi",
"xcode.lang.asm.merlin.comment.star",
"xcode.lang.asm.merlin.number",
"xcode.lang.asm.merlin.keyword",
"xcode.lang.asm.merlin.identifier",
);
};
},
{
Identifier = "xcode.lang.asm.merlin.comment.semi";
Syntax = {
StartAtBOL = NO;
StartAtColumnZero = NO;
Start = ";";
End = "\n";
IncludeRules = ( "xcode.lang.url", "xcode.lang.url.mail", "xcode.lang.comment.mark" );
Type = "xcode.syntax.comment";
};
},
{
Identifier = "xcode.lang.asm.merlin.comment.star";
Syntax = {
StartAtBOL = YES;
StartAtColumnZero = YES;
Start = "*";
End = "\n";
IncludeRules = ( "xcode.lang.url", "xcode.lang.url.mail", "xcode.lang.comment.mark" );
Type = "xcode.syntax.comment";
};
},
{
Identifier = "xcode.lang.asm.merlin.number";
Syntax = {
StartChars = "#$%0123456789";
Match = "[#$%0-9][<>^$]?[0-9A-Fa-f]*";
Type = "xcode.syntax.number";
};
},
{
Identifier = "xcode.lang.asm.merlin.codeblock";
Syntax = {
Tokenizer = "xcode.lang.asm.merlin.lexer";
Start = "]xcodestart";
End = "]xcodeend";
Recursive = NO;
Foldable = YES;
Type = "xcode.syntax.definition.function";
IncludeRules = (
);
};
},
)