title: How to write a linter?
body: <p>In my day job I, and others on my team write a lot of hardware models in Verilog-AMS, a language supported primarily by commercial vendors and a few opensource simulator projects. 
  One thing that would make supporting each others code more helpful would be a LINTER that would check our code for common problems and assist with enforcing a shared code formatting style. 
  I of course want to be able to add my own rules and, after I prove their utility to myself, promote them to the rest of the team.. 
  I don't mind doing the work that has to be done, but of course also want to leverage the work of other existing projects. </p>
  
  <p>Does having the allowed language syntax in a yacc or bison format give me a leg up? 
  or should I just suck each language statement into a perl string, and use pattern matching to find the things I don't like? </p>
  
  <p>(most syntax and compilation errors are easily caught by the commercial tools.. but we have some of our own extentions.) </p>