# switch testing (and later references testing) !funstart ils_test !A PC pc !A string str pushl @str sisnumber lg NOT_NUMBER pushl @str stoint ilookupswitch 3 DEFAULT_S 1 FIND_1 4 FIND_4 -1 FIND_M1 :FIND_1 pushc string You typed 'one'~ jmp COMMON :FIND_4 pushc string You typed 'four'~ jmp COMMON :FIND_M1 pushc string You typed 'minus one'~ jmp COMMON :DEFAULT_S pushc string You typed other number than 1,4,-1~ :COMMON pushl @pc icall out_string_P_pPC_s ret :NOT_NUMBER pushc string This is not number !!!~ pushl @pc icall out_string_P_pPC_s ret !funend !funstart sls_test !A PC pc !A string str pushl @str slookupswitch 3 DEFAULT_S alfa~ FIND_A beta~ FIND_B gamma~ FIND_C :FIND_A pushc string You typed first letter of greek alphabet~ jmp COMMON :FIND_B pushc string You typed second letter of greek alphabet~ jmp COMMON :FIND_C pushc string You typed third letter of greek alphabet~ jmp COMMON :DEFAULT_S pushc string You typed other word than "alfa", "beta" or "gamma"~ :COMMON pushl @pc icall out_string_P_pPC_s ret !funend !funstart its_test !A PC pc !A string str pushl @str sisnumber lg NOT_NUMBER pushl @str stoint itableswitch DEFAULT_S 1 4 1 FIND_1 2 FIND_2 4 FIND_4 :FIND_1 pushc string You typed 'one'~ jmp COMMON :FIND_2 pushc string You typed 'two'~ jmp COMMON :FIND_4 pushc string You typed 'four'~ jmp COMMON :DEFAULT_S pushc string You typed other number than 1,2,4~ :COMMON pushl @pc icall out_string_P_pPC_s ret :NOT_NUMBER pushc string This is not number !!!~ pushl @pc icall out_string_P_pPC_s ret !funend #pseudo LangX # # void npc_rename( PC pc, string str ) # { # Char ch; # str.startArgs(); # ch = pc.inRoom().getChar( str.getArg() ); # if ( ch == NULL ) # { # pc.out_string("There is nobody here with that name"); # return; # } # ch.longdesc = str.getArgRest(); # pc.out_string("You have changed name of person"); # return; # } !funstart npc_rename !A PC pc !A string str !L Char ch pushl @str sstartargs sgetarg pushl @pc icall inRoom_P_pThing icall getChar_P_pRoom_s popl @ch pushl @ch isnull e NO_SUCH_PERSON sgetargrest pushl @ch setfield Char longdesc pushc string You have changed name of person~ pushl @pc icall out_string_P_pPC_s ret :NO_SUCH_PERSON pushc string There is nobody here with that name~ pushl @pc icall out_string_P_pPC_s ret !funend !end