1
2
3Description="NeXT Byte Codes"
4
5Categories = {"source"}
6
7
8Digits=[[ (?:x|X)[-a-fA-F]+|\d*[\.]?\d+(?:[eE][\-\+]\\d+)?[lLuU]* ]]
9
10Keywords={
11  { Id=1,
12    List={"add", "sub", "neg", "mul", "div", "mod", "and", "or", "xor", "not",
13        "cmp", "tst", "index", "replace", "arrsize", "arrbuild", "arrsubset", "arrinit",
14        "mov", "set", "flatten", "unflatten", "numtostr", "strtonum", "strcat",
15        "strsubset", "strtoarr", "arrtostr", "jmp", "brcmp", "brtst", "syscall", "stop",
16        "exit", "exitto", "acquire", "release", "subcall", "subret", "setin", "setout",
17        "getin", "getout", "wait", "gettick", "thread", "endt", "subroutine", "follows",
18        "precedes", "segment", "ends", "typedef", "struct", "dd", "void", "waitv",
19        "call", "return", "abs", "sign", "strindex", "strreplace", "strlen", "shl",
20        "shr", "sizeof", "compchk", "compif", "compelse", "compend", "valueof",
21        "isconst", "asl", "asr", "lsl", "lsr", "rotl", "rotr", "start", "stopthread",
22        "priority", "cmnt", "fmtnum", "compchktype"},
23  },
24  { Id=2,
25    List={"byte", "ubyte", "db", "sbyte", "word", "uword", "dw", "sword",
26"dword", "udword", "dd", "sdword", "long", "ulong", "slong", "mutex"},
27  },
28  { Id=3,
29    List={"tan", "sin", "cos", "sinh", "cosh", "arctan", "cotan", "arg", "exp",
30        "ln", "log", "log", "logn", "sqr", "sqrt", "trunc", "int", "ceil", "floor",
31        "heav", "abs", "sign", "zero", "ph", "rnd", "random", "max", "min", "power",
32        "intpower", "InputIOType", "InputIOInputMode", "InputIORawValue",
33        "InputIONormalizedValue", "InputIOScaledValue", "InputIOInvalidData",
34        "OutputIOUpdateFlags", "OutputIOOutputMode", "OutputIOPower",
35        "OutputIOActualSpeed", "OutputIOTachoCount", "OutputIOTachoLimit",
36        "OutputIORunState", "OutputIOTurnRatio", "OutputIORegMode", "OutputIOOverload",
37        "OutputIORegPValue", "OutputIORegIValue", "OutputIORegDValue",
38        "OutputIOBlockTachoCount", "OutputIORotationCount", "FileOpenRead",
39        "FileOpenWrite", "FileOpenAppend", "FileRead", "FileWrite", "FileClose",
40        "FileResolveHandle", "FileRename", "FileDelete", "SoundPlayFile",
41        "SoundPlayTone", "SoundGetState", "SoundSetState", "DrawText", "DrawPoint",
42        "DrawLine", "DrawCircle", "DrawRect", "DrawGraphic", "SetScreenMode",
43        "ReadButton", "CommLSWrite", "CommLSRead", "CommLSCheckStatus", "RandomNumber",
44        "GetStartTick", "MessageWrite", "MessageRead", "CommBTCheckStatus",
45        "CommBTWrite", "KeepAlive", "IOMapRead", "IOMapWrite", "IOMapReadByID",
46        "IOMapWriteByID", "DisplayExecuteFunction", "CommExecuteFunction",
47        "LoaderExecuteFunction", "Type", "InputMode", "RawValue", "NormalizedValue",
48        "ScaledValue", "InvalidData", "UpdateFlags", "OutputMode", "Power",
49        "ActualSpeed", "TachoCount", "TachoLimit", "RunState", "TurnRatio", "RegMode",
50        "Overload", "RegPValue", "RegIValue", "RegDValue", "BlockTachoCount",
51        "RotationCount"},
52  },
53  { Id=4,
54    Regex=[[(\w+)\s*\(]],
55  },
56  { Id=4,
57    Regex=[[^(\w+)\:]],
58  }
59}
60
61Strings={
62  Delimiter=[["|']],
63}
64
65IgnoreCase=false
66
67Comments={
68  { Block=false,
69    Delimiter= { [[\/\/|\;]] },
70  },
71  { Block=true,
72    Nested=false,
73    Delimiter= { [[\/\*]],[[\*\/]],}
74  }
75}
76
77PreProcessor={
78  Prefix=[[#]],
79  Continuation="\\",
80}
81
82Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|<|>|\!|\=|\/|\*|\%|\+|\-|\~]]
83
84--EnableIndentation=true
85
86--FIXME no default escchar param: regex(\\\d{}|\\x[[:xdigit:]]{}|\\[ntvbrfa\\\?'"])
87