# Version of the language definition syntax used in the file
version = "1"

%include "c_style_preprocessors_internal.gsc"
# To define the color for preprocessors, use a statement like the
# following one, otherwise, the default color is used:
# language.preprocessor.color = "#008080"

# language specification for syntax coloring and
# auto-indention in MULTI's editor.
language {
    general {
	# Official name for the language, like
	# 	C/C++/Pascal/Java/Ada/Fortran
	# or
	# 	GHS-Script/GHS-Linmake	ker/GHS-LanguageDefinition etc.
	name = "GHS-RISCV"
	description = "RISC-V Assembly Language"
	# File extensions for the language
	extension = {"rv"}

	# The following are some other information about the language

	# Is the language case-sensitive? If no explicit specification
	# for it, the default value is true.
	case_sensitive = true

	# Priority conflict solution.
	# Comment, string and character have the same priority.
	# When preprocessor conflicts with them, some language, like
	# C/C++, let comment, string and character have higher priority,
	# other language, like PASCAL, do the other choice.
	# We choose the behavior of C/C++ as the default behavior.
	# If you want to change, like for PASCAL, use the following 
	# statement:
	# pascal_style_priority = true

	# Separator of the language to delimit syntax tokens
	separator = "@\\\"+-*/<=>:,;\'\t()[]^%!~|& {}?"

	# Escape sequence leader: one character(like the one in C).
	# escape = "\\"
    }

    keyword {
	# You can define keyword name list, the color to show the
	# keywords(optional), and indicate if to auto-complete keywords
	# when the auto-completion mechanism is on.
	# C-keywords
	name += {"add"}
	name += {"addi"}
	name += {"addiw"}
	name += {"addw"}
	name += {"amoadd", "amoadd.d", "amoadd.w.rl", "amoadd.w.aq", "amoadd.d.aqrl", "amoadd.d.aq", "amoadd.w.aqrl", "amoadd.d.rl", "amoadd.w"}
	name += {"amoand", "amoand.w.rl", "amoand.d.aq", "amoand.d.aqrl", "amoand.w.aq", "amoand.d", "amoand.w.aqrl", "amoand.d.rl", "amoand.w"}
	name += {"amomax", "amomax.w.aqrl", "amomax.w", "amomax.d.rl", "amomax.w.aq", "amomax.d.aqrl", "amomax.d.aq", "amomax.w.rl", "amomax.d"}
	name += {"amomaxu", "amomaxu.d.aq", "amomaxu.d.aqrl", "amomaxu.d.rl", "amomaxu.d", "amomaxu.w.rl", "amomaxu.w.aqrl", "amomaxu.w.aq", "amomaxu.w"}
	name += {"amomin", "amomin.d.aqrl", "amomin.d.rl", "amomin.w", "amomin.w.aq", "amomin.w.aqrl", "amomin.w.rl", "amomin.d.aq", "amomin.d"}
	name += {"amominu", "amominu.d", "amominu.d.rl", "amominu.w.rl", "amominu.w.aqrl", "amominu.d.aq", "amominu.w", "amominu.w.aq", "amominu.d.aqrl"}
	name += {"amoor", "amoor.d.aqrl", "amoor.w.aqrl", "amoor.d.aq", "amoor.w.rl", "amoor.d", "amoor.d.rl", "amoor.w.aq", "amoor.w"}
	name += {"amoswap", "amoswap.d.aq", "amoswap.w.rl", "amoswap.d.aqrl", "amoswap.w.aq", "amoswap.d", "amoswap.d.rl", "amoswap.w.aqrl", "amoswap.w"}
	name += {"amoxor", "amoxor.w.aq", "amoxor.w", "amoxor.d.aqrl", "amoxor.d.rl", "amoxor.d", "amoxor.w.aqrl", "amoxor.d.aq", "amoxor.w.rl"}
	name += {"and"}
	name += {"andi"}
	name += {"auipc"}
	name += {"beq"}
	name += {"beqz"}
	name += {"bge"}
	name += {"bgeu"}
	name += {"bgez"}
	name += {"bgt"}
	name += {"bgtu"}
	name += {"bgtz"}
	name += {"ble"}
	name += {"bleu"}
	name += {"blez"}
	name += {"blt"}
	name += {"bltu"}
	name += {"bltz"}
	name += {"bne"}
	name += {"bnez"}
	name += {"c.add"}
	name += {"c.addi"}
	name += {"c.addi16sp"}
	name += {"c.addi4spn"}
	name += {"c.addiw"}
	name += {"c.addw"}
	name += {"c.and"}
	name += {"c.andi"}
	name += {"c.beqz"}
	name += {"c.bnez"}
	name += {"c.ebreak"}
	name += {"c.fld"}
	name += {"c.fldsp"}
	name += {"c.flw"}
	name += {"c.flwsp"}
	name += {"c.fsd"}
	name += {"c.fsdsp"}
	name += {"c.fsw"}
	name += {"c.fswsp"}
	name += {"c.j"}
	name += {"c.jal"}
	name += {"c.jalr"}
	name += {"c.jr"}
	name += {"c.ld"}
	name += {"c.ldsp"}
	name += {"c.li"}
	name += {"c.lui"}
	name += {"c.lw"}
	name += {"c.lwsp"}
	name += {"c.mv"}
	name += {"c.nop"}
	name += {"c.or"}
	name += {"c.sd"}
	name += {"c.sdsp"}
	name += {"c.slli"}
	name += {"c.srai"}
	name += {"c.srli"}
	name += {"c.sub"}
	name += {"c.subw"}
	name += {"c.sw"}
	name += {"c.swsp"}
	name += {"c.xor"}
	name += {"call"}
	name += {"csrc"}
	name += {"csrci"}
	name += {"csrr"}
	name += {"csrrc"}
	name += {"csrrci"}
	name += {"csrrs"}
	name += {"csrrsi"}
	name += {"csrrw"}
	name += {"csrrwi"}
	name += {"csrs"}
	name += {"csrsi"}
	name += {"csrw"}
	name += {"csrwi"}
	name += {"div"}
	name += {"divu"}
	name += {"divuw"}
	name += {"divw"}
	name += {"ebreak"}
	name += {"ecall"}
	name += {"fabs", "fabs.d", "fabs.s", "fabs.q"}
	name += {"fadd", "fadd.s", "fadd.d","fadd.q"}
	name += {"fclass", "fclass.d", "fclass.s", "fclass.q"}
	name += {"fcvt", "fcvt.s.d", "fcvt.wu.d", "fcvt.wu.q", "fcvt.w.s", "fcvt.s.l", "fcvt.w.d", "fcvt.w.q", "fcvt.d.l", "fcvt.l.s", "fcvt.s.wu", "fcvt.lu.s", "fcvt.d.w", "fcvt.s.w", "fcvt.d.wu", "fcvt.d.lu", "fcvt.lu.d", "fcvt.d.s", "fcvt.wu.s", "fcvt.l.d", "fcvt.s.lu", "fcvt.s.q", "fcvt.d.q", "fcvt.q.s", "fcvt.q.d", "fcvt.q.w", "fcvt.q.wu"}
	name += {"fdiv", "fdiv.d", "fdiv.s", "fdiv.q"}
	name += {"fence", "fence.i", "fence.tso"}
	name += {"feq", "feq.s", "feq.d", "feq.q"}
	name += {"fge", "fge.d", "fge.s", "fge.q"}
	name += {"fgt", "fgt.s", "fgt.d", "fgt.q"}
	name += {"fld"}
	name += {"fle", "fle.d", "fle.s", "fle.q"}
	name += {"flt", "flt.s", "flt.d", "flt.q"}
	name += {"flw"}
	name += {"flq"}
	name += {"fmadd", "fmadd.s", "fmadd.d", "fmadd.q"}
	name += {"fmax", "fmax.s", "fmax.d", "fmax.q"}
	name += {"fmin", "fmin.d", "fmin.s", "fmin.q"}
	name += {"fmsub", "fmsub.d", "fmsub.s", "fmsub.q"}
	name += {"fmul", "fmul.s", "fmul.d", "fmul.q"}
	name += {"fmv", "fmv.d.x", "fmv.s.x", "fmv.x.s", "fmv.d", "fmv.x.d", "fmv.x.w", "fmv.s", "fmv.w.x", "fmv.q"}
	name += {"fneg", "fneg.s", "fneg.d", "fneg.q"}
	name += {"fnmadd", "fnmadd.s", "fnmadd.d", "fnmadd.q"}
	name += {"fnmsub", "fnmsub.s", "fnmsub.d", "fnmsub.q"}
	name += {"frcsr"}
	name += {"frflags"}
	name += {"frrm"}
	name += {"fscsr"}
	name += {"fsd"}
	name += {"fsq"}
	name += {"fsflags"}
	name += {"fsgnj", "fsgnj.s", "fsgnj.d", "fsgnj.q"}
	name += {"fsgnjn", "fsgnjn.s", "fsgnjn.d", "fsgnjn.q"}
	name += {"fsgnjx", "fsgnjx.d", "fsgnjx.s", "fsgnjx.q"}
	name += {"fsqrt", "fsqrt.d", "fsqrt.s", "fsqrt.q"}
	name += {"fsrm"}
	name += {"fsub", "fsub.d", "fsub.s", "fsub.q"}
	name += {"fsw"}
	name += {"hfence", "hfence.gvma", "hfence.bvma"}
	name += {"j"}
	name += {"jal"}
	name += {"jalr"}
	name += {"jr"}
	name += {"la"}
	name += {"lb"}
	name += {"lbu"}
	name += {"ld"}
	name += {"lh"}
	name += {"lhu"}
	name += {"li"}
	name += {"lla"}
	name += {"lr", "lr.d.aqrl", "lr.d", "lr.w.aqrl", "lr.d.aq", "lr.w", "lr.w.aq"}
	name += {"lui"}
	name += {"lw"}
	name += {"lwu"}
	name += {"mret"}
	name += {"mul"}
	name += {"mulh"}
	name += {"mulhsu"}
	name += {"mulhu"}
	name += {"mulw"}
	name += {"mv"}
	name += {"neg"}
	name += {"negw"}
	name += {"nop"}
	name += {"not"}
	name += {"or"}
	name += {"ori"}
	name += {"rdcycle"}
	name += {"rdcycleh"}
	name += {"rdinstret"}
	name += {"rdinstreth"}
	name += {"rdtime"}
	name += {"rdtimeh"}
	name += {"rem"}
	name += {"remu"}
	name += {"remuw"}
	name += {"remw"}
	name += {"ret"}
	name += {"sb"}
	name += {"sc", "sc.d", "sc.w.aqrl", "sc.w.rl", "sc.w", "sc.d.rl", "sc.d.aqrl"}
	name += {"sd"}
	name += {"seqz"}
	name += {"sext", "sext.w"}
	name += {"sfence", "sfence.vma"}
	name += {"sgt"}
	name += {"sgtu"}
	name += {"sgtz"}
	name += {"sh"}
	name += {"sll"}
	name += {"slli"}
	name += {"slliw"}
	name += {"sllw"}
	name += {"slt"}
	name += {"slti"}
	name += {"sltiu"}
	name += {"sltu"}
	name += {"sltz"}
	name += {"snez"}
	name += {"sra"}
	name += {"srai"}
	name += {"sraiw"}
	name += {"sraw"}
	name += {"sret"}
	name += {"srl"}
	name += {"srli"}
	name += {"srliw"}
	name += {"srlw"}
	name += {"sub"}
	name += {"subi"}
	name += {"subw"}
	name += {"sw"}
	name += {"tail"}
	name += {"uret"}
	name += {"wfi"}
	name += {"xor"}
	name += {"xori"}
	name += {"vsetvli","vsetivli","vsetvl"}
	name += {"vle8.v","vle16.v","vle32.v","vle64.v"}
	name += {"vle8ff.v","vle16ff.v","vle32ff.v","vle64ff.v"}
	name += {"vlse8.v","vlse16.v","vlse32.v","vlse64.v"}
	name += {"vloxei8.v","vloxei16.v","vloxei32.v","vloxei64.v"}
	name += {"vluxei8.v","vluxei16.v","vluxei32.v","vluxei64.v"}
	name += {"vlseg2e8.v","vlseg2e16.v","vlseg2e32.v","vlseg2e64.v"}
	name += {"vlseg3e8.v","vlseg3e16.v","vlseg3e32.v","vlseg3e64.v"}
	name += {"vlseg4e8.v","vlseg4e16.v","vlseg4e32.v","vlseg4e64.v"}
	name += {"vlseg5e8.v","vlseg5e16.v","vlseg5e32.v","vlseg5e64.v"}
	name += {"vlseg6e8.v","vlseg6e16.v","vlseg6e32.v","vlseg6e64.v"}
	name += {"vlseg7e8.v","vlseg7e16.v","vlseg7e32.v","vlseg7e64.v"}
	name += {"vlseg8e8.v","vlseg8e16.v","vlseg8e32.v","vlseg8e64.v"}
	name += {"vlseg2e8ff.v","vlseg2e16ff.v","vlseg2e32ff.v","vlseg2e64ff.v"}
	name += {"vlseg3e8ff.v","vlseg3e16ff.v","vlseg3e32ff.v","vlseg3e64ff.v"}
	name += {"vlseg4e8ff.v","vlseg4e16ff.v","vlseg4e32ff.v","vlseg4e64ff.v"}
	name += {"vlseg5e8ff.v","vlseg5e16ff.v","vlseg5e32ff.v","vlseg5e64ff.v"}
	name += {"vlseg6e8ff.v","vlseg6e16ff.v","vlseg6e32ff.v","vlseg6e64ff.v"}
	name += {"vlseg7e8ff.v","vlseg7e16ff.v","vlseg7e32ff.v","vlseg7e64ff.v"}
	name += {"vlseg8e8ff.v","vlseg8e16ff.v","vlseg8e32ff.v","vlseg8e64ff.v"}
	name += {"vlsseg2e8.v","vlsseg2e16.v","vlsseg2e32.v","vlsseg2e64.v"}
	name += {"vlsseg3e8.v","vlsseg3e16.v","vlsseg3e32.v","vlsseg3e64.v"}
	name += {"vlsseg4e8.v","vlsseg4e16.v","vlsseg4e32.v","vlsseg4e64.v"}
	name += {"vlsseg5e8.v","vlsseg5e16.v","vlsseg5e32.v","vlsseg5e64.v"}
	name += {"vlsseg6e8.v","vlsseg6e16.v","vlsseg6e32.v","vlsseg6e64.v"}
	name += {"vlsseg7e8.v","vlsseg7e16.v","vlsseg7e32.v","vlsseg7e64.v"}
	name += {"vlsseg8e8.v","vlsseg8e16.v","vlsseg8e32.v","vlsseg8e64.v"}
	name += {"vluxseg2ei8.v","vluxseg2ei16.v","vluxseg2ei32.v","vluxseg2ei64.v"}
	name += {"vluxseg3ei8.v","vluxseg3ei16.v","vluxseg3ei32.v","vluxseg3ei64.v"}
	name += {"vluxseg4ei8.v","vluxseg4ei16.v","vluxseg4ei32.v","vluxseg4ei64.v"}
	name += {"vluxseg5ei8.v","vluxseg5ei16.v","vluxseg5ei32.v","vluxseg5ei64.v"}
	name += {"vluxseg6ei8.v","vluxseg6ei16.v","vluxseg6ei32.v","vluxseg6ei64.v"}
	name += {"vluxseg7ei8.v","vluxseg7ei16.v","vluxseg7ei32.v","vluxseg7ei64.v"}
	name += {"vluxseg8ei8.v","vluxseg8ei16.v","vluxseg8ei32.v","vluxseg8ei64.v"}
	name += {"vloxseg2ei8.v","vloxseg2ei16.v","vloxseg2ei32.v","vloxseg2ei64.v"}
	name += {"vloxseg3ei8.v","vloxseg3ei16.v","vloxseg3ei32.v","vloxseg3ei64.v"}
	name += {"vloxseg4ei8.v","vloxseg4ei16.v","vloxseg4ei32.v","vloxseg4ei64.v"}
	name += {"vloxseg5ei8.v","vloxseg5ei16.v","vloxseg5ei32.v","vloxseg5ei64.v"}
	name += {"vloxseg6ei8.v","vloxseg6ei16.v","vloxseg6ei32.v","vloxseg6ei64.v"}
	name += {"vloxseg7ei8.v","vloxseg7ei16.v","vloxseg7ei32.v","vloxseg7ei64.v"}
	name += {"vloxseg8ei8.v","vloxseg8ei16.v","vloxseg8ei32.v","vloxseg8ei64.v"}
	name += {"vse8.v","vse16.v","vse32.v","vse64.v"}
	name += {"vse8ff.v","vse16ff.v","vse32ff.v","vse64ff.v"}
	name += {"vsse8.v","vsse16.v","vsse32.v","vsse64.v"}
	name += {"vsoxei8.v","vsoxei16.v","vsoxei32.v","vsoxei64.v"}
	name += {"vsuxei8.v","vsuxei16.v","vsuxei32.v","vsuxei64.v"}
	name += {"vsseg2e8.v","vsseg2e16.v","vsseg2e32.v","vsseg2e64.v"}
	name += {"vsseg3e8.v","vsseg3e16.v","vsseg3e32.v","vsseg3e64.v"}
	name += {"vsseg4e8.v","vsseg4e16.v","vsseg4e32.v","vsseg4e64.v"}
	name += {"vsseg5e8.v","vsseg5e16.v","vsseg5e32.v","vsseg5e64.v"}
	name += {"vsseg6e8.v","vsseg6e16.v","vsseg6e32.v","vsseg6e64.v"}
	name += {"vsseg7e8.v","vsseg7e16.v","vsseg7e32.v","vsseg7e64.v"}
	name += {"vsseg8e8.v","vsseg8e16.v","vsseg8e32.v","vsseg8e64.v"}
	name += {"vssseg2e8.v","vssseg2e16.v","vssseg2e32.v","vssseg2e64.v"}
	name += {"vssseg3e8.v","vssseg3e16.v","vssseg3e32.v","vssseg3e64.v"}
	name += {"vssseg4e8.v","vssseg4e16.v","vssseg4e32.v","vssseg4e64.v"}
	name += {"vssseg5e8.v","vssseg5e16.v","vssseg5e32.v","vssseg5e64.v"}
	name += {"vssseg6e8.v","vssseg6e16.v","vssseg6e32.v","vssseg6e64.v"}
	name += {"vssseg7e8.v","vssseg7e16.v","vssseg7e32.v","vssseg7e64.v"}
	name += {"vssseg8e8.v","vssseg8e16.v","vssseg8e32.v","vssseg8e64.v"}
	name += {"vsuxseg2ei8.v","vsuxseg2ei16.v","vsuxseg2ei32.v","vsuxseg2ei64.v"}
	name += {"vsuxseg3ei8.v","vsuxseg3ei16.v","vsuxseg3ei32.v","vsuxseg3ei64.v"}
	name += {"vsuxseg4ei8.v","vsuxseg4ei16.v","vsuxseg4ei32.v","vsuxseg4ei64.v"}
	name += {"vsuxseg5ei8.v","vsuxseg5ei16.v","vsuxseg5ei32.v","vsuxseg5ei64.v"}
	name += {"vsuxseg6ei8.v","vsuxseg6ei16.v","vsuxseg6ei32.v","vsuxseg6ei64.v"}
	name += {"vsuxseg7ei8.v","vsuxseg7ei16.v","vsuxseg7ei32.v","vsuxseg7ei64.v"}
	name += {"vsuxseg8ei8.v","vsuxseg8ei16.v","vsuxseg8ei32.v","vsuxseg8ei64.v"}
	name += {"vsoxseg2ei8.v","vsoxseg2ei16.v","vsoxseg2ei32.v","vsoxseg2ei64.v"}
	name += {"vsoxseg3ei8.v","vsoxseg3ei16.v","vsoxseg3ei32.v","vsoxseg3ei64.v"}
	name += {"vsoxseg4ei8.v","vsoxseg4ei16.v","vsoxseg4ei32.v","vsoxseg4ei64.v"}
	name += {"vsoxseg5ei8.v","vsoxseg5ei16.v","vsoxseg5ei32.v","vsoxseg5ei64.v"}
	name += {"vsoxseg6ei8.v","vsoxseg6ei16.v","vsoxseg6ei32.v","vsoxseg6ei64.v"}
	name += {"vsoxseg7ei8.v","vsoxseg7ei16.v","vsoxseg7ei32.v","vsoxseg7ei64.v"}
	name += {"vsoxseg8ei8.v","vsoxseg8ei16.v","vsoxseg8ei32.v","vsoxseg8ei64.v"}
	name += {"vl1re8.v","vl1re16.v","vl1re32.v","vl1re64.v"}
	name += {"vl2re8.v","vl2re16.v","vl2re32.v","vl2re64.v"}
	name += {"vl4re8.v","vl4re16.v","vl4re32.v","vl4re64.v"}
	name += {"vl8re8.v","vl8re16.v","vl8re32.v","vl8re64.v"}
	name += {"vs1r.v","vs2r.v","vs4r.v","vs8r.v"}
	name += {"vl1r.v","vl2r.v","vl4r.v","vl8r.v"}
	name += {"vamoswapei8.v","vamoswapei16.v","vamoswapei32.v","vamoswapei64.v"}
	name += {"vamoaddei8.v","vamoaddei16.v","vamoaddei32.v","vamoaddei64.v"}
	name += {"vamoxorei8.v","vamoxorei16.v","vamoxorei32.v","vamoxorei64.v"}
	name += {"vamoandei8.v","vamoandei16.v","vamoandei32.v","vamoandei64.v"}
	name += {"vamoorei8.v","vamoorei16.v","vamoorei32.v","vamoorei64.v"}
	name += {"vamominei8.v","vamominei16.v","vamominei32.v","vamominei64.v"}
	name += {"vamomaxei8.v","vamomaxei16.v","vamomaxei32.v","vamomaxei64.v"}
	name += {"vamominuei8.v","vamominuei16.v","vamominuei32.v","vamominuei64.v"}
	name += {"vamomaxuei8.v","vamomaxuei16.v","vamomaxuei32.v","vamomaxuei64.v"}
	name += {"vadd.vv","vadd.vx","vadd.vi"}
	name += {"vadc.vvm","vadc.vxm","vadc.vim"}
	name += {"vmadc.vvm","vmadc.vxm","vmadc.vim"}
	name += {"vmadc.vv","vmadc.vx","vmadc.vi"}
	name += {"vand.vv","vand.vx","vand.vi"}
	name += {"vor.vv","vor.vx","vor.vi"}
	name += {"vxor.vv","vxor.vx","vxor.vi"}
	name += {"vsll.vv","vsll.vx","vsll.vi"}
	name += {"vsrl.vv","vsrl.vx","vsrl.vi"}
	name += {"vsra.vv","vsra.vx","vsra.vi"}
	name += {"vmseq.vv","vmseq.vx","vmseq.vi"}
	name += {"vmsne.vv","vmsne.vx","vmsne.vi"}
	name += {"vmsleu.vv","vmsleu.vx","vmsleu.vi"}
	name += {"vmsle.vv","vmsle.vx","vmsle.vi"}
	name += {"vmsgtu.vv","vmsgtu.vx","vmsgtu.vi"}
	name += {"vmsgt.vv","vmsgt.vx","vmsgt.vi"}
	name += {"vmsltu.vv","vmsltu.vx","vmsltu.vi"}
	name += {"vmslt.vv","vmslt.vx","vmslt.vi"}
	name += {"vmsge.vv","vmsge.vx","vmsge.vi"}
	name += {"vmsgeu.vv","vmsgeu.vx","vmsgeu.vi"}
	name += {"vmerge.vvm","vmerge.vxm","vmerge.vim"}
	name += {"vsaddu.vv","vsaddu.vx","vsaddu.vi"}
	name += {"vsadd.vv","vsadd.vx","vsadd.vi"}
	name += {"vssrl.vv","vssrl.vx","vssrl.vi"}
	name += {"vssra.vv","vssra.vx","vssra.vi"}
	name += {"vrgather.vv","vrgather.vx","vrgather.vi"}
	name += {"vmv.v.v","vmv.v.x","vmv.v.i"}
	name += {"vsub.vv","vsub.vx"}
	name += {"vwaddu.vv","vwaddu.vx"}
	name += {"vwsubu.vv","vwsubu.vx"}
	name += {"vwadd.vv","vwadd.vx"}
	name += {"vwsub.vv","vwsub.vx"}
	name += {"vsbc.vvm","vsbc.vxm"}
	name += {"vmsbc.vvm","vmsbc.vxm"}
	name += {"vmsbc.vv","vmsbc.vx"}
	name += {"vminu.vv","vminu.vx"}
	name += {"vmin.vv","vmin.vx"}
	name += {"vmaxu.vv","vmaxu.vx"}
	name += {"vmax.vv","vmax.vx"}
	name += {"vmul.vv","vmul.vx"}
	name += {"vmulh.vv","vmulh.vx"}
	name += {"vmulhu.vv","vmulhu.vx"}
	name += {"vmulhsu.vv","vmulhsu.vx"}
	name += {"vdivu.vv","vdivu.vx"}
	name += {"vdiv.vv","vdiv.vx"}
	name += {"vremu.vv","vremu.vx"}
	name += {"vrem.vv","vrem.vx"}
	name += {"vwmul.vv","vwmul.vx"}
	name += {"vwmulu.vv","vwmulu.vx"}
	name += {"vwmulsu.vv","vwmulsu.vx"}
	name += {"vmacc.vv","vmacc.vx"}
	name += {"vnmsac.vv","vnmsac.vx"}
	name += {"vmadd.vv","vmadd.vx"}
	name += {"vnmsub.vv","vnmsub.vx"}
	name += {"vwmaccu.vv","vwmaccu.vx"}
	name += {"vwmacc.vv","vwmacc.vx"}
	name += {"vwmaccsu.vv","vwmaccsu.vx"}
	name += {"vssubu.vv","vssubu.vx"}
	name += {"vssub.vv","vssub.vx"}
	name += {"vaaddu.vv","vaaddu.vx"}
	name += {"vaadd.vv","vaadd.vx"}
	name += {"vasubu.vv","vasubu.vx"}
	name += {"vasub.vv","vasub.vx"}
	name += {"vsmul.vv","vsmul.vx"}
	name += {"vrsub.vx","vrsub.vi"}
	name += {"vslideup.vx","vslideup.vi"}
	name += {"vslidedown.vx","vslidedown.vi"}
	name += {"vwaddu.wv","vwaddu.wx"}
	name += {"vwsubu.wv","vwsubu.wx"}
	name += {"vwadd.wv","vwadd.wx"}
	name += {"vwsub.wv","vwsub.wx"}
	name += {"vnsrl.wv","vnsrl.wx","vnsrl.wi"}
	name += {"vnsra.wv","vnsra.wx","vnsra.wi"}
	name += {"vnclipu.wv","vnclipu.wx","vnclipu.wi"}
	name += {"vnclip.wv","vnclip.wx","vnclip.wi"}
	name += {"vfadd.vv","vfadd.vf"}
	name += {"vfsub.vv","vfsub.vf"}
	name += {"vfwadd.vv","vfwadd.vf"}
	name += {"vfwsub.vv","vfwsub.vf"}
	name += {"vfmul.vv","vfmul.vf"}
	name += {"vfdiv.vv","vfdiv.vf"}
	name += {"vfwmul.vv","vfwmul.vf"}
	name += {"vfmacc.vv","vfmacc.vf"}
	name += {"vfnmacc.vv","vfnmacc.vf"}
	name += {"vfmsac.vv","vfmsac.vf"}
	name += {"vfnmsac.vv","vfnmsac.vf"}
	name += {"vfmadd.vv","vfmadd.vf"}
	name += {"vfnmadd.vv","vfnmadd.vf"}
	name += {"vfmsub.vv","vfmsub.vf"}
	name += {"vfnmsub.vv","vfnmsub.vf"}
	name += {"vfwmacc.vv","vfwmacc.vf"}
	name += {"vfwnmacc.vv","vfwnmacc.vf"}
	name += {"vfwmsac.vv","vfwmsac.vf"}
	name += {"vfwnmsac.vv","vfwnmsac.vf"}
	name += {"vfmin.vv","vfmin.vf"}
	name += {"vfmax.vv","vfmax.vf"}
	name += {"vfsgnj.vv","vfsgnj.vf"}
	name += {"vfsgnjn.vv","vfsgnjn.vf"}
	name += {"vfsgnjx.vv","vfsgnjx.vf"}
	name += {"vmfeq.vv","vmfeq.vf"}
	name += {"vmfne.vv","vmfne.vf"}
	name += {"vmflt.vv","vmflt.vf"}
	name += {"vmfle.vv","vmfle.vf"}
	name += {"vmfgt.vv","vmfgt.vf"}
	name += {"vmfge.vv","vmfge.vf"}
	name += {"vfrsub.vf"}
	name += {"vfrdiv.vf"}
	name += {"vfmerge.vfm"}
	name += {"vfslide1up.vf"}
	name += {"vfslide1down.vf"}
	name += {"vfwadd.wv","vfwadd.wf"}
	name += {"vfwsub.wv","vfwsub.wf"}
	name += {"vfsqrt.v"}
	name += {"vfrsqrt7.v", "vfrsqrte7.v"}
	name += {"vfrec7.v", "vfrece7.v"}
	name += {"vfclass.v"}
	name += {"vid.v"}
	name += {"vrgatherei16.vv"}
	name += {"vcompress.vm"}
	name += {"vneg.v"}
	name += {"vnot.v"}
	name += {"vfneg.v"}
	name += {"vfmv.v.f"}
	name += {"vfcvt.xu.f.v","vfcvt.x.f.v","vfcvt.rtz.xu.f.v","vfcvt.rtz.x.f.v","vfcvt.f.xu.v","vfcvt.f.x.v"}
	name += {"vfwcvt.xu.f.v","vfwcvt.x.f.v","vfwcvt.rtz.xu.f.v","vfwcvt.rtz.x.f.v","vfwcvt.f.xu.v","vfwcvt.f.x.v"}
	name += {"vfncvt","vfncvt","vfncvt","vfncvt","vfncvt","vfncvt"}
	name += {"vfwcvt.f.f.v"}
	name += {"vfncvt.f.f.w","vfncvt.rod.f.f.w"}
	name += {"vredsum.vs"}
	name += {"vredmaxu.vs"}
	name += {"vredmax.vs"}
	name += {"vredminu.vs"}
	name += {"vredmin.vs"}
	name += {"vredand.vs"}
	name += {"vredor.vs"}
	name += {"vredxor.vs"}
	name += {"vwredsumu.vs"}
	name += {"vwredsum.vs"}
	name += {"vfredosum.vs"}
	name += {"vfredsum.vs", "vfredusum.vs"}
	name += {"vfredmax.vs"}
	name += {"vfredmin.vs"}
	name += {"vfwredosum.vs"}
	name += {"vfwredsum.vs", "vfwredusum.vs"}
	name += {"vmand.mm"}
	name += {"vmnand.mm"}
	name += {"vmandnot.mm", "vmandn.mm"}
	name += {"vmxor.mm"}
	name += {"vmor.mm"}
	name += {"vmnor.mm"}
	name += {"vmornot.mm", "vmorn.mm"}
	name += {"vmxnor.mm"}
	name += {"vmmv.m"}
	name += {"vmclr.m"}
	name += {"vmset.m"}
	name += {"vmnot.m"}
	name += {"vpopc.m", "vcpop.m"}
	name += {"vfirst.m"}
	name += {"vmsbf.m"}
	name += {"vmsif.m"}
	name += {"vmsof.m"}
	name += {"viota.m"}
	name += {"vmv.x.s","vmv.s.x"}
	name += {"vfmv.f.s","vfmv.s.f"}
	name += {"vmv1r.v","vmv2r.v","vmv4r.v","vmv8r.v"}
	name += {"vzext.vf2","vzext.vf4","vzext.vf8"}
	name += {"vsext.vf2","vsext.vf4","vsext.vf8"}
	name += {"vwmaccus.vx"}
	name += {"vslide1up.vx"}
	name += {"vslide1down.vx"}
	name += {"vwcvt.x.x.v"}
	name += {"vwcvtu.x.x.v"}
	name += {"vncvt.x.x.w"}
	name += {"vle1.v", "vlm.v"}
	name += {"vse1.v", "vsm.v"}
	name += {"clz", "ctz", "clzw", "ctzw"}
	name += {"cpop", "cpopw"}
	name += {"andn", "orn", "xnor"}
	name += {"pack", "packu", "packh"}
	name += {"packw", "packuw"}
	name += {"min", "max", "minu", "maxu"}
	name += {"sext.b", "sext.h"}
	name += {"bset", "bclr", "binv", "bext", "bseti", "bclri", "binvi", "bexti"}
	name += {"slo", "sro", "sloi", "sroi"}
	name += {"slow", "srow", "sloiw", "sroiw"}
	name += {"ror", "rol", "rori"}
	name += {"rorw", "rolw", "roriw"}
	name += {"grev", "grevi", "grevw", "greviw"}
	name += {"shfl", "unshfl", "shfli", "unshfli", "shflw", "unshflw"}
	name += {"xperm.n", "xperm.b", "xperm.h", "xperm.w"}
	name += {"gorc", "gorci", "gorcw", "gorciw"}
	name += {"bfp", "bfpw"}
	name += {"bcompress", "bdecompress", "bcompressw", "bdecompressw"}
	name += {"clmul", "clmulh", "clmulr"}
	name += {"crc32.b", "crc32.h", "crc32.w", "crc32c.b", "crc32c.h", "crc32c.w", "crc32.d", "crc32c.d"}
	name += {"bmator", "bmatxor", "bmatflip"}
	name += {"cmix"}
	name += {"cmov"}
	name += {"fsl", "fsr", "fsri", "fslw", "fsrw", "fsriw"}
	name += {"sh1add", "sh2add", "sh3add", "sh1add.uw", "sh2add.uw", "sh3add.uw"}
	name += {"add.uw", "slli.uw"}
	name += {"zext.h", "orc.b"}
	name += {"rev.p", "rev2.n", "rev.n", "rev4.b", "rev2.b", "rev.b"}
	name += {"rev8.h", "rev4.h", "rev2.h", "rev.h"}
	name += {"rev16", "rev8", "rev4", "rev2", "rev" }
	name += {"rev16.w", "rev8.w", "rev4.w", "rev2.w", "rev.w", "rev32"}
	name += {"orc.p", "orc2.n", "orc.n", "orc4.b", "orc2.b", "orc.b"}
	name += {"orc8.h", "orc4.h", "orc2.h", "orc.h"}
	name += {"orc16", "orc8", "orc4", "orc2", "orc" }
	name += {"orc16.w", "orc8.w", "orc4.w", "orc2.w", "orc.w", "orc32"}
	name += {"zip.n", "unzip.n", "zip2.b", "unzip2.b", "zip.b", "unzip.b"}
	name += {"zip4.h", "unzip4.h", "zip2.h", "unzip2.h", "zip.h", "unzip.h"}
	name += {"zip8.w", "unzip8.w", "zip4.w", "unzip4.w", "zip2.w", "unzip2.w", "zip.w", "unzip.w"}
	name += {"zip16", "unzip16", "zip8", "unzip8", "zip4", "unzip4", "zip2", "unzip2", "zip", "unzip"}


	# If color is not defined for keyword, default color is used.
	# color = "#0000ff"
	# If auto-completion is not explicitly specified, it is true
	# by default.
	# autocomplete = false
    }

    line_comment {
	# Because multiple line comment leaders can be defined,
	# use an index for each of them.
	1 = "#"
	2 = "//"
	# If color is not defined for line_comment, default color is used.
	# color = "#008000"
    }

    comment {
	# Because multiple pairs of comment delimiters can be defined,
	# use a index for each of them.
	1 { begin = "/*"; end = "*/" }
	# If color is not defined for comment, default color is used.
	# color = "#008000"
    }

    string {
	# Because multiple pair of string delimiters can be defined,
	# use an index for each of them.
	1 { begin = "\""; end = "\"" }
	# If color is not defined for string, default color is used.
	# color = "#008000"
    }

    character {
	# Because multiple pair of string delimiters can be defined,
	# use an index for each of them.
	1 { begin = "\'"; end = "\'" }
	# If color is not defined for character, default color is used.
	# color = "#008000"
    }

    integer {
	# Support hex integer?
	hex = true
	# Case-sensitive for integer suffix? Default is true.
	# case_sensitive = true
	# decimal_suffix = {"l", "u", "lu", "ul", "llu", "lul", "ull"}
	# hex_suffix = {"l", "u", "lu", "ul", "llu", "lul", "ull"}
	# If color is not defined for integer, default color is used.
	# color = "#008000"
    }

    float {
	# Support scientific float?
	# scientific = true
	# Case-sensitive for float suffix? Default is true.
	# case_sensitive = false
	# suffix = {"f", "l", "fl", "fl"}
	# If color is not defined for float, default color is used.
	# color = "#008000"
    }

    customized {
	# pattern = {"gen_*"}
	# More customized stuff.
	# If auto-completion is not explicitly specified, it is true
	# by default
	# autocomplete = false
	# If color is not defined for customized items, default color is used.
	# color = "#0080a0"
    }

    autocomplete {
	# "match" is used to defined match algorithm, it has 
	# the following values:
	#	"best" - default value
	#	"first"
	# As an example, if there are 3 strings for auto-completion:
	# 	"main", "mail" and "misc"
	# When you type in "m", "best match" will not auto-complete it,
	# because the 3 strings do not have a common prefix beginning with
	# "m", but "first match" will auto-complete it into "main".
	# When you type in "ma", "best match" will auto-complete it
	# into "mai", but "first match" will still auto-complete it
	# into "main".
	match = "best"
	
	# By default, you can use the following key-strokes in MULTI Editor
	# to manually find an auto-completed string for the string ending
	# at the caret:
	# 1. "ctrl+]": navigate to the next matched string.
	# 2. "ctrl+[": navigate to the previous matched string.
	# You can continuously press the keys to scan the matched
	# string list until you find the one you want.
	# 3. "ctrl+/": launch a popup menu to show a list of matched
	# strings(up to a certain number configured by the following option).
	# Then you can pick what you want form the popup menu.

	# Max number of strings to match when user types "ctrl+/".
	# The default value is 10. Use the following statement to change it.
	# max_match = 15

	# Minimum length for a string to which auto-completion can be applied.
	# The default value is 1. Use the following statement to change it.
	min_string_length = 3

	# "autocomplete" let you can turn on/off the whole
	# auto-completion mechanism. The default value is true.
	# When the setting here is true, you can still turn on/off
	# about if using keywords, preprocessors or customized items
	# not containing wild card as the auto-completion source.
	# autocomplete = false

	# Define extra auto-completion items in addition to
	# 1. keywords
	# 2. preprocessors
	# 3. customized items not containing wild card

	# Auto-complete strings
	# name = {"main"}
	# name += {"strcasecmp"}
	# More stuff from library for auto-completion
	
	# More stuff from GHS-library for auto-completion
    }
}
