llvm-mirror/utils/vim
David Greene 7cabd2e787 Add Foreach Loop
Add some data structures to represent for loops.  These will be
referenced during object processing to do any needed iteration and
instantiation.

Add foreach keyword support to the lexer.

Add a mode to indicate that we're parsing a foreach loop.  This allows
the value parser to early-out when processing the foreach value list.

Add a routine to parse foreach iteration declarations.  This is
separate from ParseDeclaration because the type of the named value
(the iterator) doesn't match the type of the initializer value (the
value list).  It also needs to add two values to the foreach record:
the iterator and the value list.

Add parsing support for foreach.

Add the code to process foreach loops and create defs based
on iterator values.

Allow foreach loops to be matched at the top level.

When parsing an IDValue check if it is a foreach loop iterator for one
of the active loops.  If so, return a VarInit for it.

Add Emacs keyword support for foreach.

Add VIM keyword support for foreach.

Add tests to check foreach operation.

Add TableGen documentation for foreach.

Support foreach with multiple objects.

Support non-braced foreach body with one object.

Do not require types for the foreach declaration.  Assume the iterator
type from the iteration list element type.

llvm-svn: 151164
2012-02-22 16:09:41 +00:00
..
llvm.vim
README
tablegen.vim
vimrc

-*- llvm/utils/vim/README -*-

These are syntax highlighting files for the VIM editor. Included are:

* llvm.vim

  Syntax highlighting mode for LLVM assembly files. To use, copy `llvm.vim' to
  ~/.vim/syntax and add this code to your ~/.vimrc :

  augroup filetype
    au! BufRead,BufNewFile *.ll     set filetype=llvm
  augroup END

* tablegen.vim

  Syntax highlighting mode for TableGen description files. To use, copy
  `tablegen.vim' to ~/.vim/syntax and add this code to your ~/.vimrc :

  augroup filetype
    au! BufRead,BufNewFile *.td     set filetype=tablegen
  augroup END


If you prefer, instead of making copies you can make symlinks from
~/.vim/syntax/... to the syntax files in your LLVM source tree. Apparently
this did not work with older versions of vim however, so if this doesn't
work you may need to make actual copies of the files.

Another option, if you do not already have a ~/.vim/syntax directory, is
to symlink ~/.vim/syntax itself to llvm/utils/vim .

Note: If you notice missing or incorrect syntax highlighting, please contact
<llvmbugs [at] cs.uiuc.edu>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.

If you find yourself working with LLVM Makefiles often, but you don't get syntax
highlighting (because the files have names such as Makefile.rules or
TEST.nightly.Makefile), add the following to your ~/.vimrc:

  " LLVM Makefile highlighting mode
  augroup filetype
    au! BufRead,BufNewFile *Makefile*     set filetype=make
  augroup END