From cc7a4b5aa751d50c4fdeae0a1335b3a5bf801ae1 Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 30 Apr 2020 15:41:44 +1000 Subject: Add tests for mmixal lexer. --- lexilla/test/examples/mmixal/AllStyles.mms | 74 +++++++++++++++++++++++ lexilla/test/examples/mmixal/AllStyles.mms.styled | 74 +++++++++++++++++++++++ lexilla/test/examples/mmixal/SciTE.properties | 4 ++ lexilla/test/examples/mmixal/x.mms | 12 ++++ lexilla/test/examples/mmixal/x.mms.styled | 12 ++++ 5 files changed, 176 insertions(+) create mode 100644 lexilla/test/examples/mmixal/AllStyles.mms create mode 100644 lexilla/test/examples/mmixal/AllStyles.mms.styled create mode 100644 lexilla/test/examples/mmixal/SciTE.properties create mode 100644 lexilla/test/examples/mmixal/x.mms create mode 100644 lexilla/test/examples/mmixal/x.mms.styled diff --git a/lexilla/test/examples/mmixal/AllStyles.mms b/lexilla/test/examples/mmixal/AllStyles.mms new file mode 100644 index 000000000..3c38bdcde --- /dev/null +++ b/lexilla/test/examples/mmixal/AllStyles.mms @@ -0,0 +1,74 @@ +% Demonstrate each possible style. Does not make sense as code. + +% A comment 1 +% Comment + + +% Whitespace 0 + + + +% Label 2 +label + + +% Not Validated Opcode 3 appears to always validate to either 5 or 6 +% so is never seen on screen. + + +% Division between Label and Opcode 4 +la + + +% Valid Opcode 5 + TRAP + + +% Invalid Opcode 6 + UNKNOWN + + +% Division between Opcode and Operands 7 + LOC + + +% Division of Operands 8 + LOC 0. + + +% Number 9 + BYTE 0 + + +% Reference 10 + JMP @label + + +% Char 11 + BYTE 'a' + + +% String 12 + BYTE "Hello, world!" + + +% Register 13 + BYTE rA + + +% Hexadecimal Number 14 + BYTE #FF + + +% Operator 15 + BYTE + + + +% Symbol 16 + TRAP Fputs + + +% Preprocessor 17 +@include a.mms + + diff --git a/lexilla/test/examples/mmixal/AllStyles.mms.styled b/lexilla/test/examples/mmixal/AllStyles.mms.styled new file mode 100644 index 000000000..b3f64d4f7 --- /dev/null +++ b/lexilla/test/examples/mmixal/AllStyles.mms.styled @@ -0,0 +1,74 @@ +{1}% Demonstrate each possible style. Does not make sense as code. +{0} +{1}% A comment 1 +% Comment +{0} + +{1}% Whitespace 0 +{0} + + +{1}% Label 2 +{2}label{4} +{0} + +{1}% Not Validated Opcode 3 appears to always validate to either 5 or 6 +% so is never seen on screen. +{0} + +{1}% Division between Label and Opcode 4 +{2}la{4} +{0} + +{1}% Valid Opcode 5 +{0} {5}TRAP{7} +{0} + +{1}% Invalid Opcode 6 +{0} {6}UNKNOWN{7} +{0} + +{1}% Division between Opcode and Operands 7 +{0} {5}LOC{7} +{0} + +{1}% Division of Operands 8 +{0} {5}LOC{7} {9}0{8}.{1} +{0} + +{1}% Number 9 +{0} {5}BYTE{7} {9}0{1} +{0} + +{1}% Reference 10 +{0} {5}JMP{7} {10}@label{1} +{0} + +{1}% Char 11 +{0} {5}BYTE{7} {11}'a'{1} +{0} + +{1}% String 12 +{0} {5}BYTE{7} {12}"Hello, world!"{1} +{0} + +{1}% Register 13 +{0} {5}BYTE{7} {13}rA{1} +{0} + +{1}% Hexadecimal Number 14 +{0} {5}BYTE{7} {14}#FF{1} +{0} + +{1}% Operator 15 +{0} {5}BYTE{7} {15}+{1} +{0} + +{1}% Symbol 16 +{0} {5}TRAP{7} {16}Fputs{1} +{0} + +{1}% Preprocessor 17 +{17}@include a.mms +{0} + diff --git a/lexilla/test/examples/mmixal/SciTE.properties b/lexilla/test/examples/mmixal/SciTE.properties new file mode 100644 index 000000000..d458a19fd --- /dev/null +++ b/lexilla/test/examples/mmixal/SciTE.properties @@ -0,0 +1,4 @@ +lexer.*.mms=mmixal +keywords.*.mms=BYTE GETA JMP LOC PREFIX TRAP +keywords2.*.mms=rA +keywords3.*.mms=Fputs StdOut diff --git a/lexilla/test/examples/mmixal/x.mms b/lexilla/test/examples/mmixal/x.mms new file mode 100644 index 000000000..361517cec --- /dev/null +++ b/lexilla/test/examples/mmixal/x.mms @@ -0,0 +1,12 @@ +% Some example code + + % Set the address of the program initially to 0x100. + LOC #100 + +Main GETA $255,string + + TRAP 0,Fputs,StdOut + + TRAP 0,Halt,0 + +string BYTE "Hello, world!",#a,0 diff --git a/lexilla/test/examples/mmixal/x.mms.styled b/lexilla/test/examples/mmixal/x.mms.styled new file mode 100644 index 000000000..7221e37f9 --- /dev/null +++ b/lexilla/test/examples/mmixal/x.mms.styled @@ -0,0 +1,12 @@ +{1}% Some example code +{0} + {1}% Set the address of the program initially to 0x100. +{0} {5}LOC{7} {14}#100{1} +{0} +{2}Main{4} {5}GETA{7} {13}$255{15},{10}string{1} +{0} + {5}TRAP{7} {9}0{15},{16}Fputs{15},{16}StdOut{1} +{0} + {5}TRAP{7} {9}0{15},{10}Halt{15},{9}0{1} +{0} +{2}string{4} {5}BYTE{7} {12}"Hello, world!"{15},{14}#a{15},{9}0{1} -- cgit v1.2.3