diff options
Diffstat (limited to 'tests/lexers/bbcbasic')
| -rw-r--r-- | tests/lexers/bbcbasic/example.txt | 1962 |
1 files changed, 1962 insertions, 0 deletions
diff --git a/tests/lexers/bbcbasic/example.txt b/tests/lexers/bbcbasic/example.txt new file mode 100644 index 00000000..c1820faf --- /dev/null +++ b/tests/lexers/bbcbasic/example.txt @@ -0,0 +1,1962 @@ +---input--- +10REM >EIRC +20REM The simplest IRC client you can write. Maybe. +30REM (C) Justin Fletcher, 1998 +40: +50END=PAGE+1024*16 +60REM Change these if you wish +70host$="irc.stealth.net" +80port=6667 +90nick$="eirc" +100ourchan$="#acorn" +110: +120REM Start connecting to a host +130SYS "ESocket_ConnectToHost",host$,port TO handle +140REPEAT +150 SYS "ESocket_CheckState",handle TO state +160 IF state<-1 THENSYS "ESocket_Forget",handle:SYS "ESocket_DecodeState",state TO a$:ERROR 1,"Failed ("+a$+")" +170UNTIL state=4 +180: +190REM We are now connected +200PRINT"Connected" +210: +220REM Log on to the server +230SYS "ESocket_SendLine",handle,"USER "+nick$+" x x :"+nick$ +240SYS "ESocket_SendLine",handle,"NICK "+nick$ +250SYS "ESocket_SendLine",handle,"JOIN "+ourchan$ +260REM Install a monitor so that we don't waste time +270SYS "ESocket_Monitor",0,handle TO monitor +280SYS "ESocket_ResetMonitor",monitor,0 TO polladdr% +290: +300REM If we crash, we should tidy up after ourselves +310ON ERROR SYS "XESocket_Forget",handle:SYS "XESocket_Forget",monitor:ERROR EXT ERR,REPORT$+" at line "+STR$ERL +320: +330REM Memory buffer for our data +340bufsize%=1024 +350DIM buf% bufsize% +360: +370input$="":REM The input line +380REPEAT +390 REM In a taskwindow we should yield until there is data +400 SYS "OS_UpCall",6,polladdr% +410 IF !polladdr%<>0 THEN +420 REM Reset the monitor for the time being +430 SYS "ESocket_ResetMonitor",monitor,0 TO polladdr% +440 REPEAT +450 REM Read lines from the connection until this buffer is empty +460 SYS "ESocket_ReadLine",handle,buf%,bufsize%,%100 TO ,str,len +470 IF str<>0 AND $str<>"" THEN +480 line$=$str +490 IF LEFT$(line$,4)="PING" THEN +500 REM Ping's must be replied to immediately +510 SYS "ESocket_SendLine",handle,"PONG "+MID$(line$,6) +520 ELSE +530 REM Extract source info +540 from$=MID$(LEFT$(line$,INSTR(line$+" "," ")-1),2) +550 line$=MID$(line$,INSTR(line$+" "," ")+1) +560 uid$=LEFT$(from$,INSTR(from$+"!","!")-1) +570 com$=LEFT$(line$,INSTR(line$+" "," ")-1) +580 line$=MID$(line$,INSTR(line$+" "," ")+1) +590 REM remove the input line +600 IF input$<>"" THENFORI=1TOLEN(input$):VDU127:NEXT +610 CASE FNupper(com$) OF +620 WHEN "PRIVMSG" +630 REM Extract the destination +640 chan$=LEFT$(line$,INSTR(line$+" "," ")-1) +650 line$=MID$(line$,INSTR(line$+" "," ")+2):REM Skip : +660 IF LEFT$(line$,1)=CHR$1 THEN +670 REM CTCP, so respond to it +680 line$=MID$(line$,2,LEN(line$)-2) +690 com$=LEFT$(line$,INSTR(line$+" "," ")-1) +700 line$=MID$(line$,INSTR(line$+" "," ")+1) +710 CASE FNupper(com$) OF +720 WHEN "PING" +730 REM Ping lag timing +740 line$="PONG "+line$ +750 PRINTuid$;" pinged us" +760 WHEN "VERSION" +770 REM Version checking +780 line$="VERSION EIRC 1.00 (c) Justin Fletcher" +790 PRINTuid$;" wanted our version" +800 WHEN "ACTION" +810 PRINT"* ";uid$;" ";line$ +820 line$="" +830 OTHERWISE +840 REM everything else is an error +850 line$="ERRMSG "+com$+" not understood" +860 PRINT"CTCP '";com$;"' from ";uid$;" (";line$;")" +870 ENDCASE +880 IF line$<>"" THEN +890 SYS "ESocket_SendLine",handle,"NOTICE "+uid$+" :"+CHR$1+line$+CHR$1 +900 ENDIF +910 ELSE +920 REM Somebody said something... +930 PRINT"<";uid$;"> ";FNsafe(line$) +940 ENDIF +950 WHEN "JOIN" +960 REM We (or someone else) has joined the channel +970 chan$=LEFT$(line$,INSTR(line$+" "," ")):REM Skip : +980 IF LEFT$(chan$,1)=":" THENchan$=MID$(chan$,2) +990 PRINTuid$;" has joined ";chan$ +1000 WHEN "PART" +1010 REM Someone else has left the channel +1020 chan$=LEFT$(line$,INSTR(line$+" "," ")-1) +1030 IF LEFT$(chan$,1)=":" THENchan$=MID$(chan$,2) +1040 PRINTuid$;" has left ";chan$ +1050 WHEN "QUIT" +1060 REM Someone else has quit IRC +1070 PRINTuid$;" quit IRC" +1080 OTHERWISE +1090 REM Some unknown command +1100 PRINTuid$;":";com$;":";FNsafe(line$) +1110 ENDCASE +1120 REM Re-display our input line +1130 PRINTinput$; +1140 ENDIF +1150 ENDIF +1160 UNTIL str=0 +1170 ENDIF +1180 b$=INKEY$(0) +1190 IF b$<>"" THEN +1200 CASE b$ OF +1210 WHEN CHR$13 +1220 SYS "ESocket_SendLine",handle,"PRIVMSG "+ourchan$+" :"+input$ +1230 REM Remove the line +1240 IF input$<>"" THENFORI=1TOLEN(input$):VDU127:NEXT +1250 REM We said it... +1260 PRINT"<"+nick$+"> ";input$ +1270 input$="" +1280 WHEN CHR$127,CHR$8 +1290 REM Backspace +1300 IF input$<>"" THENVDU127 +1310 input$=LEFT$(input$) +1320 OTHERWISE +1330 REM Ad to current input +1340 input$+=b$ +1350 PRINTb$; +1360 ENDCASE +1370 ENDIF +1380 REM Has the socket closed +1390 SYS "ESocket_Closed",handle,%0 TO closed +1400UNTIL closed +1410SYS "ESocket_Forget",handle +1420SYS "ESocket_Forget",monitor +1430END +1440: +1450DEFFNupper(a$):LOCAL c$,b$,I +1460FORI=1TOLEN(a$) +1470c$=MID$(a$,I,1):IF c$>="a"ANDc$<="z"THENc$=CHR$(ASC(c$)-32) +1480b$+=c$:NEXT:=b$ +1490 +1500REM Remove control codes +1510DEFFNsafe(line$) +1520LOCAL I +1530FORI=1TOLEN(line$) +1540 IF MID$(line$,I,1)<" " THENMID$(line$,I,1)="*" +1550NEXT +1560=line$ + +---tokens--- +'10' Name.Label +'REM' Keyword.Declaration +' >EIRC' Comment.Single +'\n' Text.Whitespace + +'20' Name.Label +'REM' Keyword.Declaration +' The simplest IRC client you can write. Maybe.' Comment.Single +'\n' Text.Whitespace + +'30' Name.Label +'REM' Keyword.Declaration +' (C) Justin Fletcher, 1998' Comment.Single +'\n' Text.Whitespace + +'40' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'50' Name.Label +'END' Keyword +'=' Operator +'PAGE' Keyword.Pseudo +'+1024' Literal.Number.Integer +'*' Operator +'16' Literal.Number.Integer +'\n' Text.Whitespace + +'60' Name.Label +'REM' Keyword.Declaration +' Change these if you wish' Comment.Single +'\n' Text.Whitespace + +'70' Name.Label +'host$' Name.Variable +'=' Operator +'"' Literal.String.Double +'irc.stealth.net' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'80' Name.Label +'port' Name.Variable +'=' Operator +'6667' Literal.Number.Integer +'\n' Text.Whitespace + +'90' Name.Label +'nick$' Name.Variable +'=' Operator +'"' Literal.String.Double +'eirc' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'100' Name.Label +'ourchan$' Name.Variable +'=' Operator +'"' Literal.String.Double +'#acorn' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'110' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'120' Name.Label +'REM' Keyword.Declaration +' Start connecting to a host' Comment.Single +'\n' Text.Whitespace + +'130' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_ConnectToHost' Literal.String.Double +'"' Literal.String.Double +',' Operator +'host$' Name.Variable +',' Operator +'port' Name.Variable +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'handle' Name.Variable +'\n' Text.Whitespace + +'140' Name.Label +'REPEAT' Keyword +'\n' Text.Whitespace + +'150' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_CheckState' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'state' Name.Variable +'\n' Text.Whitespace + +'160' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'state' Name.Variable +'<' Operator +'-1' Literal.Number.Integer +' ' Text.Whitespace +'THEN' Keyword +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_Forget' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +':' Comment.Preproc +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_DecodeState' Literal.String.Double +'"' Literal.String.Double +',' Operator +'state' Name.Variable +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'a$' Name.Variable +':' Comment.Preproc +'ERR' Keyword.Pseudo +'OR' Keyword +' ' Text.Whitespace +'1' Literal.Number.Integer +',' Operator +'"' Literal.String.Double +'Failed (' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'a$' Name.Variable +'+' Operator +'"' Literal.String.Double +')' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'170' Name.Label +'UNTIL' Keyword +' ' Text.Whitespace +'state' Name.Variable +'=' Operator +'4' Literal.Number.Integer +'\n' Text.Whitespace + +'180' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'190' Name.Label +'REM' Keyword.Declaration +' We are now connected' Comment.Single +'\n' Text.Whitespace + +'200' Name.Label +'PRINT' Keyword +'"' Literal.String.Double +'Connected' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'210' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'220' Name.Label +'REM' Keyword.Declaration +' Log on to the server' Comment.Single +'\n' Text.Whitespace + +'230' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_SendLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'"' Literal.String.Double +'USER ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'nick$' Name.Variable +'+' Operator +'"' Literal.String.Double +' x x :' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'nick$' Name.Variable +'\n' Text.Whitespace + +'240' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_SendLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'"' Literal.String.Double +'NICK ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'nick$' Name.Variable +'\n' Text.Whitespace + +'250' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_SendLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'"' Literal.String.Double +'JOIN ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'ourchan$' Name.Variable +'\n' Text.Whitespace + +'260' Name.Label +'REM' Keyword.Declaration +" Install a monitor so that we don't waste time" Comment.Single +'\n' Text.Whitespace + +'270' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_Monitor' Literal.String.Double +'"' Literal.String.Double +',' Operator +'0' Literal.Number.Integer +',' Operator +'handle' Name.Variable +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'monitor' Name.Variable +'\n' Text.Whitespace + +'280' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_ResetMonitor' Literal.String.Double +'"' Literal.String.Double +',' Operator +'monitor' Name.Variable +',' Operator +'0' Literal.Number.Integer +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'polladdr%' Name.Variable +'\n' Text.Whitespace + +'290' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'300' Name.Label +'REM' Keyword.Declaration +' If we crash, we should tidy up after ourselves' Comment.Single +'\n' Text.Whitespace + +'310' Name.Label +'ON' Keyword +' ' Text.Whitespace +'ERR' Keyword.Pseudo +'OR' Keyword +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'XESocket_Forget' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +':' Comment.Preproc +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'XESocket_Forget' Literal.String.Double +'"' Literal.String.Double +',' Operator +'monitor' Name.Variable +':' Comment.Preproc +'ERR' Keyword.Pseudo +'OR' Keyword +' ' Text.Whitespace +'EXT' Keyword +' ' Text.Whitespace +'ERR' Keyword.Pseudo +',' Operator +'REPORT$' Keyword.Pseudo +'+' Operator +'"' Literal.String.Double +' at line ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'STR$' Keyword +'ERL' Keyword.Pseudo +'\n' Text.Whitespace + +'320' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'330' Name.Label +'REM' Keyword.Declaration +' Memory buffer for our data' Comment.Single +'\n' Text.Whitespace + +'340' Name.Label +'bufsize%' Name.Variable +'=' Operator +'1024' Literal.Number.Integer +'\n' Text.Whitespace + +'350' Name.Label +'DIM' Keyword +' ' Text.Whitespace +'buf%' Name.Variable +' ' Text.Whitespace +'bufsize%' Name.Variable +'\n' Text.Whitespace + +'360' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'370' Name.Label +'input$' Name.Variable +'=' Operator +'"' Literal.String.Double +'"' Literal.String.Double +':' Comment.Preproc +'REM' Keyword.Declaration +' The input line' Comment.Single +'\n' Text.Whitespace + +'380' Name.Label +'REPEAT' Keyword +'\n' Text.Whitespace + +'390' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' In a taskwindow we should yield until there is data' Comment.Single +'\n' Text.Whitespace + +'400' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'OS_UpCall' Literal.String.Double +'"' Literal.String.Double +',' Operator +'6' Literal.Number.Integer +',' Operator +'polladdr%' Name.Variable +'\n' Text.Whitespace + +'410' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'!' Operator +'polladdr%' Name.Variable +'<' Operator +'>' Operator +'0' Literal.Number.Integer +' ' Text.Whitespace +'THEN' Keyword +'\n' Text.Whitespace + +'420' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Reset the monitor for the time being' Comment.Single +'\n' Text.Whitespace + +'430' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_ResetMonitor' Literal.String.Double +'"' Literal.String.Double +',' Operator +'monitor' Name.Variable +',' Operator +'0' Literal.Number.Integer +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'polladdr%' Name.Variable +'\n' Text.Whitespace + +'440' Name.Label +' ' Text.Whitespace +'REPEAT' Keyword +'\n' Text.Whitespace + +'450' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Read lines from the connection until this buffer is empty' Comment.Single +'\n' Text.Whitespace + +'460' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_ReadLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'buf%' Name.Variable +',' Operator +'bufsize%' Name.Variable +',' Operator +'%100' Literal.Number.Bin +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +',' Operator +'str' Name.Variable +',' Operator +'len' Name.Variable +'\n' Text.Whitespace + +'470' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'str' Name.Variable +'<' Operator +'>' Operator +'0' Literal.Number.Integer +' ' Text.Whitespace +'AND' Keyword +' ' Text.Whitespace +'$' Operator +'str' Name.Variable +'<' Operator +'>' Operator +'"' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'\n' Text.Whitespace + +'480' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'$' Operator +'str' Name.Variable +'\n' Text.Whitespace + +'490' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'4' Literal.Number.Integer +')' Operator +'=' Operator +'"' Literal.String.Double +'PING' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'\n' Text.Whitespace + +'500' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +" Ping's must be replied to immediately" Comment.Single +'\n' Text.Whitespace + +'510' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_SendLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'"' Literal.String.Double +'PONG ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'6' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'520' Name.Label +' ' Text.Whitespace +'ELSE' Keyword +'\n' Text.Whitespace + +'530' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Extract source info' Comment.Single +'\n' Text.Whitespace + +'540' Name.Label +' ' Text.Whitespace +'from$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'-1' Literal.Number.Integer +')' Operator +',' Operator +'2' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'550' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'+1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'560' Name.Label +' ' Text.Whitespace +'uid$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'from$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'from$' Name.Variable +'+' Operator +'"' Literal.String.Double +'!' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +'!' Literal.String.Double +'"' Literal.String.Double +')' Operator +'-1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'570' Name.Label +' ' Text.Whitespace +'com$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'-1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'580' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'+1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'590' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' remove the input line' Comment.Single +'\n' Text.Whitespace + +'600' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'input$' Name.Variable +'<' Operator +'>' Operator +'"' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'FOR' Keyword +'I' Name.Variable +'=' Operator +'1' Literal.Number.Integer +'TO' Keyword +'LEN' Keyword +'(' Operator +'input$' Name.Variable +')' Operator +':' Comment.Preproc +'VDU' Keyword +'127' Literal.Number.Integer +':' Comment.Preproc +'NEXT' Keyword +'\n' Text.Whitespace + +'610' Name.Label +' ' Text.Whitespace +'CASE' Keyword +' ' Text.Whitespace +'FN' Keyword +'upper' Name.Function +'(' Operator +'com$' Name.Variable +')' Operator +' ' Text.Whitespace +'OF' Keyword +'\n' Text.Whitespace + +'620' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'PRIVMSG' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'630' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Extract the destination' Comment.Single +'\n' Text.Whitespace + +'640' Name.Label +' ' Text.Whitespace +'chan$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'-1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'650' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'+2' Literal.Number.Integer +')' Operator +':' Comment.Preproc +'REM' Keyword.Declaration +' Skip :' Comment.Single +'\n' Text.Whitespace + +'660' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'1' Literal.Number.Integer +')' Operator +'=' Operator +'CHR$' Keyword +'1' Literal.Number.Integer +' ' Text.Whitespace +'THEN' Keyword +'\n' Text.Whitespace + +'670' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' CTCP, so respond to it' Comment.Single +'\n' Text.Whitespace + +'680' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'2' Literal.Number.Integer +',' Operator +'LEN' Keyword +'(' Operator +'line$' Name.Variable +')' Operator +'-2' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'690' Name.Label +' ' Text.Whitespace +'com$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'-1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'700' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'+1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'710' Name.Label +' ' Text.Whitespace +'CASE' Keyword +' ' Text.Whitespace +'FN' Keyword +'upper' Name.Function +'(' Operator +'com$' Name.Variable +')' Operator +' ' Text.Whitespace +'OF' Keyword +'\n' Text.Whitespace + +'720' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'PING' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'730' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Ping lag timing' Comment.Single +'\n' Text.Whitespace + +'740' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'"' Literal.String.Double +'PONG ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'line$' Name.Variable +'\n' Text.Whitespace + +'750' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' pinged us' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'760' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'VERSION' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'770' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Version checking' Comment.Single +'\n' Text.Whitespace + +'780' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'"' Literal.String.Double +'VERSION EIRC 1.00 (c) Justin Fletcher' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'790' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' wanted our version' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'800' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ACTION' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'810' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'"' Literal.String.Double +'* ' Literal.String.Double +'"' Literal.String.Double +';' Operator +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +';' Operator +'line$' Name.Variable +'\n' Text.Whitespace + +'820' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'"' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'830' Name.Label +' ' Text.Whitespace +'OTHERWISE' Keyword +'\n' Text.Whitespace + +'840' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' everything else is an error' Comment.Single +'\n' Text.Whitespace + +'850' Name.Label +' ' Text.Whitespace +'line$' Name.Variable +'=' Operator +'"' Literal.String.Double +'ERRMSG ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'com$' Name.Variable +'+' Operator +'"' Literal.String.Double +' not understood' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'860' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'"' Literal.String.Double +"CTCP '" Literal.String.Double +'"' Literal.String.Double +';' Operator +'com$' Name.Variable +';' Operator +'"' Literal.String.Double +"' from " Literal.String.Double +'"' Literal.String.Double +';' Operator +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' (' Literal.String.Double +'"' Literal.String.Double +';' Operator +'line$' Name.Variable +';' Operator +'"' Literal.String.Double +')' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'870' Name.Label +' ' Text.Whitespace +'END' Keyword +'CASE' Keyword +'\n' Text.Whitespace + +'880' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'line$' Name.Variable +'<' Operator +'>' Operator +'"' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'\n' Text.Whitespace + +'890' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_SendLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'"' Literal.String.Double +'NOTICE ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'uid$' Name.Variable +'+' Operator +'"' Literal.String.Double +' :' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'CHR$' Keyword +'1' Literal.Number.Integer +'+' Operator +'line$' Name.Variable +'+' Operator +'CHR$' Keyword +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'900' Name.Label +' ' Text.Whitespace +'END' Keyword +'IF' Keyword +'\n' Text.Whitespace + +'910' Name.Label +' ' Text.Whitespace +'ELSE' Keyword +'\n' Text.Whitespace + +'920' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Somebody said something...' Comment.Single +'\n' Text.Whitespace + +'930' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'"' Literal.String.Double +'<' Literal.String.Double +'"' Literal.String.Double +';' Operator +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +'> ' Literal.String.Double +'"' Literal.String.Double +';' Operator +'FN' Keyword +'safe' Name.Function +'(' Operator +'line$' Name.Variable +')' Operator +'\n' Text.Whitespace + +'940' Name.Label +' ' Text.Whitespace +'END' Keyword +'IF' Keyword +'\n' Text.Whitespace + +'950' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'JOIN' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'960' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' We (or someone else) has joined the channel' Comment.Single +'\n' Text.Whitespace + +'970' Name.Label +' ' Text.Whitespace +'chan$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +')' Operator +':' Comment.Preproc +'REM' Keyword.Declaration +' Skip :' Comment.Single +'\n' Text.Whitespace + +'980' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'LEFT$' Keyword +'(' Operator +'chan$' Name.Variable +',' Operator +'1' Literal.Number.Integer +')' Operator +'=' Operator +'"' Literal.String.Double +':' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'chan$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'chan$' Name.Variable +',' Operator +'2' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'990' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' has joined ' Literal.String.Double +'"' Literal.String.Double +';' Operator +'chan$' Name.Variable +'\n' Text.Whitespace + +'1000' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'PART' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'1010' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Someone else has left the channel' Comment.Single +'\n' Text.Whitespace + +'1020' Name.Label +' ' Text.Whitespace +'chan$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'INSTR' Keyword +'(' Operator +'line$' Name.Variable +'+' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +',' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +')' Operator +'-1' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'1030' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'LEFT$' Keyword +'(' Operator +'chan$' Name.Variable +',' Operator +'1' Literal.Number.Integer +')' Operator +'=' Operator +'"' Literal.String.Double +':' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'chan$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'chan$' Name.Variable +',' Operator +'2' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'1040' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' has left ' Literal.String.Double +'"' Literal.String.Double +';' Operator +'chan$' Name.Variable +'\n' Text.Whitespace + +'1050' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'QUIT' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'1060' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Someone else has quit IRC' Comment.Single +'\n' Text.Whitespace + +'1070' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +' quit IRC' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'1080' Name.Label +' ' Text.Whitespace +'OTHERWISE' Keyword +'\n' Text.Whitespace + +'1090' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Some unknown command' Comment.Single +'\n' Text.Whitespace + +'1100' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'uid$' Name.Variable +';' Operator +'"' Literal.String.Double +':' Literal.String.Double +'"' Literal.String.Double +';' Operator +'com$' Name.Variable +';' Operator +'"' Literal.String.Double +':' Literal.String.Double +'"' Literal.String.Double +';' Operator +'FN' Keyword +'safe' Name.Function +'(' Operator +'line$' Name.Variable +')' Operator +'\n' Text.Whitespace + +'1110' Name.Label +' ' Text.Whitespace +'END' Keyword +'CASE' Keyword +'\n' Text.Whitespace + +'1120' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Re-display our input line' Comment.Single +'\n' Text.Whitespace + +'1130' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'input$' Name.Variable +';' Operator +'\n' Text.Whitespace + +'1140' Name.Label +' ' Text.Whitespace +'END' Keyword +'IF' Keyword +'\n' Text.Whitespace + +'1150' Name.Label +' ' Text.Whitespace +'END' Keyword +'IF' Keyword +'\n' Text.Whitespace + +'1160' Name.Label +' ' Text.Whitespace +'UNTIL' Keyword +' ' Text.Whitespace +'str' Name.Variable +'=' Operator +'0' Literal.Number.Integer +'\n' Text.Whitespace + +'1170' Name.Label +' ' Text.Whitespace +'END' Keyword +'IF' Keyword +'\n' Text.Whitespace + +'1180' Name.Label +' ' Text.Whitespace +'b$' Name.Variable +'=' Operator +'INKEY$' Keyword +'(' Operator +'0' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'1190' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'b$' Name.Variable +'<' Operator +'>' Operator +'"' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'\n' Text.Whitespace + +'1200' Name.Label +' ' Text.Whitespace +'CASE' Keyword +' ' Text.Whitespace +'b$' Name.Variable +' ' Text.Whitespace +'OF' Keyword +'\n' Text.Whitespace + +'1210' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'CHR$' Keyword +'13' Literal.Number.Integer +'\n' Text.Whitespace + +'1220' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_SendLine' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'"' Literal.String.Double +'PRIVMSG ' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'ourchan$' Name.Variable +'+' Operator +'"' Literal.String.Double +' :' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'input$' Name.Variable +'\n' Text.Whitespace + +'1230' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Remove the line' Comment.Single +'\n' Text.Whitespace + +'1240' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'input$' Name.Variable +'<' Operator +'>' Operator +'"' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'FOR' Keyword +'I' Name.Variable +'=' Operator +'1' Literal.Number.Integer +'TO' Keyword +'LEN' Keyword +'(' Operator +'input$' Name.Variable +')' Operator +':' Comment.Preproc +'VDU' Keyword +'127' Literal.Number.Integer +':' Comment.Preproc +'NEXT' Keyword +'\n' Text.Whitespace + +'1250' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' We said it...' Comment.Single +'\n' Text.Whitespace + +'1260' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'"' Literal.String.Double +'<' Literal.String.Double +'"' Literal.String.Double +'+' Operator +'nick$' Name.Variable +'+' Operator +'"' Literal.String.Double +'> ' Literal.String.Double +'"' Literal.String.Double +';' Operator +'input$' Name.Variable +'\n' Text.Whitespace + +'1270' Name.Label +' ' Text.Whitespace +'input$' Name.Variable +'=' Operator +'"' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'1280' Name.Label +' ' Text.Whitespace +'WHEN' Keyword +' ' Text.Whitespace +'CHR$' Keyword +'127' Literal.Number.Integer +',' Operator +'CHR$' Keyword +'8' Literal.Number.Integer +'\n' Text.Whitespace + +'1290' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Backspace' Comment.Single +'\n' Text.Whitespace + +'1300' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'input$' Name.Variable +'<' Operator +'>' Operator +'"' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'VDU' Keyword +'127' Literal.Number.Integer +'\n' Text.Whitespace + +'1310' Name.Label +' ' Text.Whitespace +'input$' Name.Variable +'=' Operator +'LEFT$' Keyword +'(' Operator +'input$' Name.Variable +')' Operator +'\n' Text.Whitespace + +'1320' Name.Label +' ' Text.Whitespace +'OTHERWISE' Keyword +'\n' Text.Whitespace + +'1330' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Ad to current input' Comment.Single +'\n' Text.Whitespace + +'1340' Name.Label +' ' Text.Whitespace +'input$' Name.Variable +'+=' Operator +'b$' Name.Variable +'\n' Text.Whitespace + +'1350' Name.Label +' ' Text.Whitespace +'PRINT' Keyword +'b$' Name.Variable +';' Operator +'\n' Text.Whitespace + +'1360' Name.Label +' ' Text.Whitespace +'END' Keyword +'CASE' Keyword +'\n' Text.Whitespace + +'1370' Name.Label +' ' Text.Whitespace +'END' Keyword +'IF' Keyword +'\n' Text.Whitespace + +'1380' Name.Label +' ' Text.Whitespace +'REM' Keyword.Declaration +' Has the socket closed' Comment.Single +'\n' Text.Whitespace + +'1390' Name.Label +' ' Text.Whitespace +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_Closed' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +',' Operator +'%0' Literal.Number.Bin +' ' Text.Whitespace +'TO' Keyword +' ' Text.Whitespace +'closed' Name.Variable +'\n' Text.Whitespace + +'1400' Name.Label +'UNTIL' Keyword +' ' Text.Whitespace +'closed' Name.Variable +'\n' Text.Whitespace + +'1410' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_Forget' Literal.String.Double +'"' Literal.String.Double +',' Operator +'handle' Name.Variable +'\n' Text.Whitespace + +'1420' Name.Label +'SYS' Keyword +' ' Text.Whitespace +'"' Literal.String.Double +'ESocket_Forget' Literal.String.Double +'"' Literal.String.Double +',' Operator +'monitor' Name.Variable +'\n' Text.Whitespace + +'1430' Name.Label +'END' Keyword +'\n' Text.Whitespace + +'1440' Name.Label +':' Comment.Preproc +'\n' Text.Whitespace + +'1450' Name.Label +'DEF' Keyword.Declaration +'FN' Keyword.Declaration +'upper' Name.Function +'(' Operator +'a$' Name.Variable +')' Operator +':' Comment.Preproc +'LOCAL' Keyword +' ' Text.Whitespace +'c$' Name.Variable +',' Operator +'b$' Name.Variable +',' Operator +'I' Name.Variable +'\n' Text.Whitespace + +'1460' Name.Label +'FOR' Keyword +'I' Name.Variable +'=' Operator +'1' Literal.Number.Integer +'TO' Keyword +'LEN' Keyword +'(' Operator +'a$' Name.Variable +')' Operator +'\n' Text.Whitespace + +'1470' Name.Label +'c$' Name.Variable +'=' Operator +'MID$' Keyword +'(' Operator +'a$' Name.Variable +',' Operator +'I' Name.Variable +',' Operator +'1' Literal.Number.Integer +')' Operator +':' Comment.Preproc +'IF' Keyword +' ' Text.Whitespace +'c$' Name.Variable +'>' Operator +'=' Operator +'"' Literal.String.Double +'a' Literal.String.Double +'"' Literal.String.Double +'AND' Keyword +'c$' Name.Variable +'<' Operator +'=' Operator +'"' Literal.String.Double +'z' Literal.String.Double +'"' Literal.String.Double +'THEN' Keyword +'c$' Name.Variable +'=' Operator +'CHR$' Keyword +'(' Operator +'ASC' Keyword +'(' Operator +'c$' Name.Variable +')' Operator +'-32' Literal.Number.Integer +')' Operator +'\n' Text.Whitespace + +'1480' Name.Label +'b$' Name.Variable +'+=' Operator +'c$' Name.Variable +':' Comment.Preproc +'NEXT' Keyword +':' Comment.Preproc +'=' Operator +'b$' Name.Variable +'\n' Text.Whitespace + +'1490' Name.Label +'\n' Text.Whitespace + +'1500' Name.Label +'REM' Keyword.Declaration +' Remove control codes' Comment.Single +'\n' Text.Whitespace + +'1510' Name.Label +'DEF' Keyword.Declaration +'FN' Keyword.Declaration +'safe' Name.Function +'(' Operator +'line$' Name.Variable +')' Operator +'\n' Text.Whitespace + +'1520' Name.Label +'LOCAL' Keyword +' ' Text.Whitespace +'I' Name.Variable +'\n' Text.Whitespace + +'1530' Name.Label +'FOR' Keyword +'I' Name.Variable +'=' Operator +'1' Literal.Number.Integer +'TO' Keyword +'LEN' Keyword +'(' Operator +'line$' Name.Variable +')' Operator +'\n' Text.Whitespace + +'1540' Name.Label +' ' Text.Whitespace +'IF' Keyword +' ' Text.Whitespace +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'I' Name.Variable +',' Operator +'1' Literal.Number.Integer +')' Operator +'<' Operator +'"' Literal.String.Double +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text.Whitespace +'THEN' Keyword +'MID$' Keyword +'(' Operator +'line$' Name.Variable +',' Operator +'I' Name.Variable +',' Operator +'1' Literal.Number.Integer +')' Operator +'=' Operator +'"' Literal.String.Double +'*' Literal.String.Double +'"' Literal.String.Double +'\n' Text.Whitespace + +'1550' Name.Label +'NEXT' Keyword +'\n' Text.Whitespace + +'1560' Name.Label +'=' Operator +'line$' Name.Variable +'\n' Text.Whitespace |
