让source insight支持AT&T汇编语法高亮

来源:互联网 发布:淘宝买鱼缸 编辑:程序博客网 时间:2024/04/28 10:17

原文地址:http://knol.google.com/k/at-t-asm-syntax-highlight-in-source-insight


步骤:

1.添加新的语言:

a) 打开 "Options"->"Preference"->"Languages"

  

b)  点"add",输入语言名称"at&t asm"


2.设置关键字和属性

a).新建个文本文件,保存以下内容

!, Delimiter#, Delimiter%, Delimiter&, Delimiter', Delimiter(, Delimiter), Delimiter*, Delimiter+, Delimiter",", Delimiter-, Delimiter.align, Keyword.ascii, Keyword.BREAK, Keyword.bss, Keyword.byte, Keyword.CODE, Keyword.CONST, Keyword.CONTINUE, Keyword.CREF, Keyword.data, Keyword.DATA?, Keyword.define, Keyword.ELSE, Keyword.ELSEIF, Keyword.ENDIF, Keyword.ENDW, Keyword.ERR, Keyword.ERRB, Keyword.ERRDEF, Keyword.ERRDEFI, Keyword.ERRE, Keyword.ERRIDNI, Keyword.ERRNB, Keyword.ERRNDEF, Keyword.ERRNZ, Keyword.fill, Keyword.globl, Keyword.IF, Keyword.long, Keyword.MODEL, Keyword.NOCREF, Keyword.quad, Keyword.RADIX, Keyword.REPEAT, Keyword.STACK, Keyword.text, Keyword.UNTIL, Keyword.UNTILCXZ, Keyword.WHILE, Keyword.word, Keyword/, Delimiter:, Delimiter;, Delimiter<, Delimiter=, Delimiter>, Delimiter?, Delimiter@CATSTR, Keyword@INSTR, Keyword@SIZESTR, Keyword@SUBSTR, KeywordAAA, KeywordAAD, KeywordAAM, KeywordAAS, KeywordADC, KeywordADD, KeywordADDL, KeywordADDR, KeywordADDW, KeywordAH, KeywordAL, KeywordALIGN, KeywordAND, KeywordANDB, KeywordANDL, KeywordANDW, KeywordARPL, KeywordASSUME, KeywordAX, KeywordBH, KeywordBL, KeywordBOUND, KeywordBP, KeywordBSF, KeywordBSFL, KeywordBSR, KeywordBSWAP, KeywordBT, KeywordBTC, KeywordBTR, KeywordBTRL, KeywordBTS, KeywordBX, KeywordBYTE, KeywordCALL, KeywordCASEMAP, KeywordCATSTR, KeywordCBW, KeywordCDQ, KeywordCH, KeywordCL, KeywordCLC, KeywordCLD, KeywordCLI, KeywordCLTS, KeywordCMC, KeywordCMP, KeywordCMPL, KeywordCMPS, KeywordCMPW, KeywordCMPXCHG, KeywordCOMM, KeywordCS, KeywordCWD, KeywordCWDE, KeywordCX, KeywordDAA, KeywordDAS, KeywordDB, KeywordDD, KeywordDEC, KeywordDF, KeywordDH, KeywordDI, KeywordDIV, KeywordDL, KeywordDQ, KeywordDS, KeywordDT, KeywordDW, KeywordDWORD, KeywordDX, KeywordEAX, KeywordEBP, KeywordEBX, KeywordECHO, KeywordECX, KeywordEDI, KeywordEDX, KeywordEIP, KeywordEND, KeywordENDM, KeywordENDS, KeywordENTER, KeywordEPILOGUE, KeywordEQU, KeywordES, KeywordESC, KeywordESI, KeywordESP, KeywordEXITM, KeywordEXTERN, KeywordEXTERNDEF, KeywordFOR, KeywordFORC, KeywordFS, KeywordFWAIT, KeywordFWORD, KeywordGOTO, KeywordGS, KeywordHLT, KeywordIDIV, KeywordIFB, KeywordIFDEF, KeywordIFNB, KeywordIFNDEF, KeywordIMUL, KeywordIN, KeywordINB, KeywordINC, KeywordINCL, KeywordINCLUDE, KeywordINCLUDELIB, KeywordINCW, KeywordINS, KeywordINSTR, KeywordINT, KeywordINTO, KeywordINVD, KeywordINVLPG, KeywordINVOKE, KeywordINW, KeywordIP, KeywordIRET, ControlIRETD, ControlJA, KeywordJAE, KeywordJB, KeywordJBE, KeywordJC, KeywordJCXZ, ControlJE, KeywordJECXZ, ControlJG, KeywordJGE, KeywordJL, KeywordJLE, KeywordJMP, ControlJMPI, ControlJNA, ControlJNAE, ControlJNB, ControlJNBE, ControlJNC, ControlJNE, ControlJNG, ControlJNGE, ControlJNL, ControlJNLE, ControlJNO, ControlJNP, ControlJNS, ControlJNZ, ControlJO, ControlJP, ControlJPE, KeywordJPO, KeywordJS, KeywordJZ, KeywordLAHF, KeywordLANGUAGE, KeywordLAR, KeywordLDS, KeywordLEA, ControlLEAVE, ControlLES, KeywordLFS, KeywordLGDT, KeywordLGS, KeywordLIDT, KeywordLJMP, KeywordLLDT, KeywordLMSW, KeywordLOCAL, KeywordLOCK, KeywordLODS, KeywordLOOP, KeywordLOOPE, KeywordLOOPNE, KeywordLOOPNZ, KeywordLOOPZ, KeywordLSL, KeywordLSS, KeywordLTR, KeywordMACRO, KeywordMOV, KeywordMOVB, KeywordMOVL, KeywordMOVS, KeywordMOVSX, KeywordMOVW, KeywordMOVZX, KeywordMUL, KeywordNEG, KeywordNOP, KeywordNOSCOPED, KeywordNOT, KeywordNOTL, KeywordOFFSET, KeywordOPTION, KeywordOR, KeywordORG, KeywordOUT, KeywordOUTB, KeywordOUTS, KeywordOUTW, KeywordPOP, KeywordPOPA, KeywordPOPAD, KeywordPOPCONTEXT, KeywordPOPF, KeywordPOPFD, KeywordPOPFL, KeywordPOPFW, KeywordPOPL, KeywordPOPW, KeywordPROC, KeywordPROTO, KeywordPTR, KeywordPUBLIC, KeywordPURGE, KeywordPUSH, KeywordPUSHA, KeywordPUSHAD, KeywordPUSHCONTEXT, KeywordPUSHF, KeywordPUSHFD, KeywordPUSHFL, KeywordPUSHL, KeywordQWORD, KeywordRCL, KeywordRCR, KeywordREAL10, KeywordREAL4, KeywordREAL8, KeywordRECORD, KeywordREP, KeywordREPE, KeywordREPEAT, KeywordREPNE, KeywordREPNZ, KeywordREPT, KeywordREPZ, KeywordRET, KeywordRETF, KeywordROL, KeywordROR, KeywordRORL, KeywordSAHF, KeywordSAL, KeywordSAR, KeywordSBB, KeywordSBYTE, KeywordSCAS, KeywordSCOPED, KeywordSDWOR, KeywordSETAE, KeywordSETB, KeywordSETBE, KeywordSETC, KeywordSETE, KeywordSETG, KeywordSETGE, KeywordSETL, KeywordSETLE, KeywordSETNA, KeywordSETNAE, KeywordSETNB, KeywordSETNC, KeywordSETNE, KeywordSETNG, KeywordSETNGE, KeywordSETNL, KeywordSETNLE, KeywordSETNO, KeywordSETNP, KeywordSETNS, KeywordSETNZ, KeywordSETO, KeywordSETP, KeywordSETPE, KeywordSETPO, KeywordSETS, KeywordSETZ, KeywordSGDT, KeywordSHL, KeywordSHLD, KeywordSHR, KeywordSHRD, KeywordSI, KeywordSIDT, KeywordSIZEOF, KeywordSIZESTR, KeywordSLDT, KeywordSMSW, KeywordSP, KeywordSS, KeywordSTC, KeywordSTD, KeywordSTI, KeywordSTOS, KeywordSTR, KeywordSTRUC, KeywordSTRUCT, KeywordSUB, KeywordSUBSTR, KeywordSWORD, KeywordTBYTE, KeywordTEST, KeywordTESTL, KeywordTEXTEQU, KeywordTYPEDEF, KeywordUNION, KeywordUSES, KeywordVERR, KeywordVERW, KeywordWAIT, KeywordWBINVD, KeywordWORD, KeywordXCHG, KeywordXCHGL, KeywordXLAT, KeywordXLATB, KeywordXOR, KeywordXORL, Keyword[, Delimiter|, Delimiter], Delimiter~, Delimiter

保存完后,将关键字导入:

点"Options"->"Preference"->"keywords... " ,然后按照以下图示导入:





b.设置"Comments and Ranges"

打开 "Options"->"Languages"->"at&t asm Properties"





c)设置"Custom Parsing"



\([A-Za-z0-9_]+\)=.


^\([_A-Za-z][A-Za-z0-9_]+\):*


3.设置symbol lookups


4.添加文件类型

点击"Options"->"Document Options"




点击"add type..."

按照上图设置即可


最后,将工程重新解析下,就可以看到效果了