* Whitespace token modernization - ambient lexer * Whitespace token modernization - ampl lexer * Whitespace token modernization - apdlexer lexer * Whitespace token modernization - apl lexer * Whitespace token modernization - adl lexer * Whitespace token modernization - arrow lexer * Whitespace token modernization - asm lexer
1011 lines
26 KiB
Text
Generated
1011 lines
26 KiB
Text
Generated
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Lychrel numbers.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
"; :author: Marc 'BlackJack' Rintsch" Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :date: 2008-03-07' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :version: 0.1' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Prints all `Lychrel numbers`_ between 1 and 100000.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; The numbers are stored as array of "digits" in little endian' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; order. Each digit is a byte with a value between 0 and 9.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Runtime on C64: 00:21:01' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; .. _Lychrel numbers: http://en.wikipedia.org/wiki/Lychrel_number' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; .. cl65 -l -tnone -C simple.cfg lychrel.s -o lychrel.prg' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; External addresses.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'chrout' Name
|
|
'\t' Text.Whitespace
|
|
'=' Operator
|
|
' ' Text.Whitespace
|
|
'$ffd2' Literal.Number.Hex
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Constants.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'TO' Name
|
|
'\t\t' Text.Whitespace
|
|
'=' Operator
|
|
' ' Text.Whitespace
|
|
'100000' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'TO_DIGITS' Name
|
|
'\t' Text.Whitespace
|
|
'=' Operator
|
|
' ' Text.Whitespace
|
|
'10' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'ITERATIONS' Name
|
|
'\t' Text.Whitespace
|
|
'=' Operator
|
|
' ' Text.Whitespace
|
|
'100' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'MAX_DIGITS' Name
|
|
'\t' Text.Whitespace
|
|
'=' Operator
|
|
' ' Text.Whitespace
|
|
'TO_DIGITS' Name
|
|
' ' Text.Whitespace
|
|
'+' Operator
|
|
' ' Text.Whitespace
|
|
'ITERATIONS' Name
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Global variables.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.zeropage' Keyword.Pseudo
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Length of the currently tested `n` in digits.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'n_length:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'1' Literal.Number.Integer
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Length of the number(s) `xa` and `xb` while testing.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'length:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'1' Literal.Number.Integer
|
|
'\n\n' Text.Whitespace
|
|
|
|
'.bss' Keyword.Pseudo
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Number to be tested as digits i.e. bytes with values between' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; 0 and 9. The length is stored in `n_length`.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'n:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'TO_DIGITS' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Space for calculating the reversed and added values.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; In the `main` code the current number is copied into `xa`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; and then repeatedly `reverse_add`\\ed to itself with the' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; result of that adding stored in `xb`.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'xa:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'MAX_DIGITS' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'xb:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'MAX_DIGITS' Name
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; BASIC header.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.code' Keyword.Pseudo
|
|
'\n\t' Text.Whitespace
|
|
'.word' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'0800h' Literal.Number.Hex
|
|
'\t\t' Text.Whitespace
|
|
'; Load address.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'.byte' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'0' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'.word' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'@line_end' Name
|
|
'\n\t' Text.Whitespace
|
|
'.word' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'2008' Literal.Number.Integer
|
|
'\t\t' Text.Whitespace
|
|
'; Line number.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'.byte' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'$9e' Literal.Number.Hex
|
|
'\t\t' Text.Whitespace
|
|
'; SYS token.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'.byte' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'"2080 "' Literal.String
|
|
'\t\t' Text.Whitespace
|
|
'; SYS argument.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'.byte' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'"LYCHREL NUMBERS/BJ"' Literal.String
|
|
'\n' Text.Whitespace
|
|
|
|
'@line_end:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.byte' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'0' Literal.Number.Integer
|
|
',' Punctuation
|
|
' ' Text.Whitespace
|
|
'0' Literal.Number.Integer
|
|
',' Punctuation
|
|
' ' Text.Whitespace
|
|
'0' Literal.Number.Integer
|
|
'\t\t' Text.Whitespace
|
|
'; Line and program end marker.' Comment.Single
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Main program.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.proc' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'main' Name
|
|
'\n\n' Text.Whitespace
|
|
|
|
'.zeropage' Keyword.Pseudo
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Three byte counter for `TO` iterations (100000 = $0186a0).' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'i:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'3' Literal.Number.Integer
|
|
'\n\n' Text.Whitespace
|
|
|
|
'.code' Keyword.Pseudo
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Clear and set `n` and `i` to 1.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'0' Literal.Number.Integer
|
|
'\t\t' Text.Whitespace
|
|
'; n := 0; n := 1; i := 1' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'+' Operator
|
|
'1' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'+' Operator
|
|
'2' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'ldx' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'TO_DIGITS' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'clear_n:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'dex' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'clear_n' Name
|
|
'\n\t' Text.Whitespace
|
|
'inx' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'stx' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'\n\t' Text.Whitespace
|
|
'stx' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
'\n\t' Text.Whitespace
|
|
'stx' Keyword
|
|
' ' Text.Whitespace
|
|
'n_length' Name
|
|
'\n\t\n' Text.Whitespace
|
|
|
|
'mainloop:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'jsr' Keyword
|
|
' ' Text.Whitespace
|
|
'is_lychrel' Name
|
|
'\n\t' Text.Whitespace
|
|
'bcc' Keyword
|
|
' ' Text.Whitespace
|
|
'no_lychrel' Name
|
|
'\n\t' Text.Whitespace
|
|
'jsr' Keyword
|
|
' ' Text.Whitespace
|
|
'print_n' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'no_lychrel:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'jsr' Keyword
|
|
' ' Text.Whitespace
|
|
'increase_n' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'inc' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'\t\t' Text.Whitespace
|
|
'; INC(i)' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'skip' Name
|
|
'\n\t' Text.Whitespace
|
|
'inc' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'+' Operator
|
|
'1' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'skip' Name
|
|
'\n\t' Text.Whitespace
|
|
'inc' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'+' Operator
|
|
'2' Literal.Number.Integer
|
|
'\n' Text.Whitespace
|
|
|
|
'skip:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'\n\t' Text.Whitespace
|
|
'cmp' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'<' Operator
|
|
'TO' Name
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'mainloop' Name
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'+' Operator
|
|
'1' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'cmp' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'>' Operator
|
|
'TO' Name
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'mainloop' Name
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'+' Operator
|
|
'2' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'cmp' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'^' Operator
|
|
'TO' Name
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'mainloop' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'rts' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'.endproc' Keyword.Pseudo
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Print `n` and a trailing newline.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :in: `n_length`, `n`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.proc' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'print_n' Name
|
|
'\n\t' Text.Whitespace
|
|
'ldy' Keyword
|
|
' ' Text.Whitespace
|
|
'n_length' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'L1:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'y' Name
|
|
'\n\t' Text.Whitespace
|
|
'ora' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'%110000' Literal.Number.Bin
|
|
' ' Text.Whitespace
|
|
"; = '0'" Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'jsr' Keyword
|
|
' ' Text.Whitespace
|
|
'chrout' Name
|
|
'\n\t' Text.Whitespace
|
|
'dey' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L1' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'13' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'jmp' Keyword
|
|
' ' Text.Whitespace
|
|
'chrout' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'.endproc' Keyword.Pseudo
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Increase `n` by one.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; This procedure expects n[n_length] == 0 in case the number gets' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; one digit longer.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :in: `n`, `n_length`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :out: `n`, `n_length`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.proc' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'increase_n' Name
|
|
'\n\t' Text.Whitespace
|
|
'ldx' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'0' Literal.Number.Integer
|
|
'\n' Text.Whitespace
|
|
|
|
'L1:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'inc' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\t\t' Text.Whitespace
|
|
'; Increase digit.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'cmp' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'10' Literal.Number.Integer
|
|
'\t\t' Text.Whitespace
|
|
'; If "carry", store 0 and go to next digit.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'return' Name
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'0' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'inx' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L1' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'return:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'cpx' Keyword
|
|
' ' Text.Whitespace
|
|
'n_length' Name
|
|
'\t' Text.Whitespace
|
|
'; If "carry" after last digit, increase length.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'bcc' Keyword
|
|
' ' Text.Whitespace
|
|
'skip' Name
|
|
'\n\t' Text.Whitespace
|
|
'inc' Keyword
|
|
' ' Text.Whitespace
|
|
'n_length' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'skip:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'rts' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'.endproc' Keyword.Pseudo
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Tests if `n` is a Lychrel number.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :in: `n`, `n_length`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :out: C is set if yes, cleared otherwise.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :uses: `length`, `xa`, `xb`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.proc' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'is_lychrel' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'.zeropage' Keyword.Pseudo
|
|
'\n' Text.Whitespace
|
|
|
|
'i:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'.res' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'1' Literal.Number.Integer
|
|
'\n\n' Text.Whitespace
|
|
|
|
'.code' Keyword.Pseudo
|
|
'\n\t' Text.Whitespace
|
|
'ldx' Keyword
|
|
' ' Text.Whitespace
|
|
'n_length' Name
|
|
'\t\t' Text.Whitespace
|
|
'; xa := n; length := n_length' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'stx' Keyword
|
|
' ' Text.Whitespace
|
|
'length' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'L1:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'n' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'xa' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'dex' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L1' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'ITERATIONS' Name
|
|
'\t\t' Text.Whitespace
|
|
'; i := ITERATIONS' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'L2:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'jsr' Keyword
|
|
' ' Text.Whitespace
|
|
'reverse_add' Name
|
|
'\n\t' Text.Whitespace
|
|
'jsr' Keyword
|
|
' ' Text.Whitespace
|
|
'is_palindrome' Name
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'no_palindrome' Name
|
|
'\n\t' Text.Whitespace
|
|
'clc' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'rts' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'no_palindrome:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'ldx' Keyword
|
|
' ' Text.Whitespace
|
|
'length' Name
|
|
'\t\t' Text.Whitespace
|
|
'; a := b' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'L3:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'xb' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'xa' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'dex' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L3' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'dec' Keyword
|
|
' ' Text.Whitespace
|
|
'i' Name
|
|
'\t\t\t' Text.Whitespace
|
|
'; Loop body end.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L2' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'sec' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'rts' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'.endproc' Keyword.Pseudo
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Add the reverse to `xa` to itself and store the result in `xb`.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :in: `length`, `xa`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :out: `length`, `xb`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.proc' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'reverse_add' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'.code' Keyword.Pseudo
|
|
'\n\t' Text.Whitespace
|
|
'ldx' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'0' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'ldy' Keyword
|
|
' ' Text.Whitespace
|
|
'length' Name
|
|
'\n\t' Text.Whitespace
|
|
'clc' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'L1:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'xa' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'adc' Keyword
|
|
' ' Text.Whitespace
|
|
'xa' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'y' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'cmp' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'10' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'bcc' Keyword
|
|
' ' Text.Whitespace
|
|
'no_adjust' Name
|
|
'\n\t' Text.Whitespace
|
|
'sbc' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'10' Literal.Number.Integer
|
|
'\n' Text.Whitespace
|
|
|
|
'no_adjust:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'xb' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'dey' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'inx' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'txa' Keyword
|
|
'\t\t' Text.Whitespace
|
|
'; ``eor`` instead of ``cpx`` to keep the carry flag' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'eor' Keyword
|
|
' ' Text.Whitespace
|
|
'length' Name
|
|
'\t' Text.Whitespace
|
|
'; of the addition above.' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L1' Name
|
|
'\n\t\n\t' Text.Whitespace
|
|
'bcc' Keyword
|
|
' ' Text.Whitespace
|
|
'no_carry' Name
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'1' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'xb' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'inc' Keyword
|
|
' ' Text.Whitespace
|
|
'length' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'no_carry:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'rts' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'.endproc' Keyword.Pseudo
|
|
'\n\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; Checks if `xb` is a palindrome.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; ' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :in: `length`, `xb`' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'; :out: Z flag set if `xb` is a palindrome, cleared otherwise.' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
';--------------------------------------' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'.proc' Keyword.Pseudo
|
|
' ' Text.Whitespace
|
|
'is_palindrome' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'.code' Keyword.Pseudo
|
|
'\n\t' Text.Whitespace
|
|
'ldx' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'0' Literal.Number.Integer
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'length' Name
|
|
'\n\t' Text.Whitespace
|
|
'tay' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'lsr' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'sta' Keyword
|
|
' ' Text.Whitespace
|
|
'L1' Name
|
|
'+' Operator
|
|
'1' Literal.Number.Integer
|
|
'\t' Text.Whitespace
|
|
'; Self modifying code!' Comment.Single
|
|
'\n' Text.Whitespace
|
|
|
|
'L1:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'cpx' Keyword
|
|
' ' Text.Whitespace
|
|
'#' Punctuation
|
|
'0' Literal.Number.Integer
|
|
'\t\t' Text.Whitespace
|
|
'; <<< 0 replaced by (`length` / 2).' Comment.Single
|
|
'\n\t' Text.Whitespace
|
|
'beq' Keyword
|
|
' ' Text.Whitespace
|
|
'return' Name
|
|
'\n\t' Text.Whitespace
|
|
'lda' Keyword
|
|
' ' Text.Whitespace
|
|
'xb' Name
|
|
',' Punctuation
|
|
'x' Name
|
|
'\n\t' Text.Whitespace
|
|
'cmp' Keyword
|
|
' ' Text.Whitespace
|
|
'xb' Name
|
|
'-' Operator
|
|
'1' Literal.Number.Integer
|
|
',' Punctuation
|
|
'y' Name
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'return' Name
|
|
'\n\t' Text.Whitespace
|
|
'dey' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'inx' Keyword
|
|
'\n\t' Text.Whitespace
|
|
'bne' Keyword
|
|
' ' Text.Whitespace
|
|
'L1' Name
|
|
'\n' Text.Whitespace
|
|
|
|
'return:' Name.Label
|
|
'\n\t' Text.Whitespace
|
|
'rts' Keyword
|
|
'\n' Text.Whitespace
|
|
|
|
'.endproc' Keyword.Pseudo
|
|
'\n' Text.Whitespace
|