"Vim syntax file "Language: nand2tetris Hardware Description Language "Maintainer: Christopher Noussis "Latest Revision: 14 January 2015 "TODO: Fix syntax names to work with accepted style convention "syn keyword [languageName][SyntaxElementName] if exists("b:current_syntax") finish endif "Comments. syn match hdlComment "\/\/.*$" syn region hdlComment start='\/\*' end='\*\/' syn region hdlComment start='\/\*\*' end='\*\/' "The all-caps basic language keywords. syn keyword basicKeywords CHIP PARTS IN OUT BUILTIN CLOCKED "Builtin chips. syn keyword builtInChips Nand Not And Or Xor Mux DMux syn keyword builtInChips Not16 And16 Or16 Mux16 syn keyword builtInChips Or8Way Mux4Way16 Mux8Way16 DMux4Way DMux8Way syn keyword builtInChips HalfAdder FullAdder Add16 ALU Inc16 syn keyword builtInChips DFF Bit Register ARegister DRegister syn keyword builtInChips RAM8 RAM64 RAM512 RAM4K RAM16K syn keyword builtInChips PC ROM32K Screen Keyboard "External syn keyword extPin in out nextgroup=busNumber syn match busNumber '\[\d*\]' "TODO: Make it so the braces are not matched. syn region hdlInterface start='{' end='}' fold transparent "Internal syn region hdlImplementation start=':' end='}' fold transparent syn region partInterface start='(' end=')' contains=connection, extPin "syn match connection '\w\+(\[\d+\])\*=\w\+(\[\d+\])\*' syn match connection '\w\+=\@=' contained syn match connection '=\@<=\w\+' contained let b:current_syntax = 'chip' "Syntax Highlighting hi def link hdlComment Comment hi def link basicKeywords Statement hi def link builtInChips Special hi def link extPin Type hi def link busNumber Constant hi def link connection Identifier