History log of /external/llvm/lib/TableGen/TGLexer.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cebb4ee93a0064e4a2cb1fd1da7455b01e5655cb 22-Feb-2012 David Greene <greened@obbligato.org> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/TGLexer.h
d3d1cad535d1c88e13e8e082c136260ee624967f 19-Oct-2011 David Greene <greened@obbligato.org> Implement Paste

Add a paste operator '#' to take two identifier-like strings and joint
them. Internally paste gets represented as a !strconcat() with any
necessary casts to string added.

This will be used to implement basic for loop functionality as in:

for i = [0, 1, 2, 3, 4, 5, 6, 7] {
def R#i : Register<...>
}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/TGLexer.h
a761f92cd38572dd65cc995c5f59b9c2c0f51068 19-Oct-2011 David Greene <greened@obbligato.org> Add Peek

Add a peek function to let the Lexer look at a character arbitrarily
far ahead in the stream without consuming anything. We need this to
disambiguate numbers and operands of a paste operation. For example:

def foo#8i

Without lookahead the lexer will treat '8' as a number rather than as
part of a string to be pasted to form an identifier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/TGLexer.h
a1b1b79be15c4b79a4282f148085ebad1cf877ca 07-Oct-2011 David Greene <greened@obbligato.org> Remove Multidefs

Multidefs are a bit unwieldy and incomplete. Remove them in favor of
another mechanism, probably for loops.

Revert "Make Test More Thorough"
Revert "Fix a typo."
Revert "Vim Support for Multidefs"
Revert "Emacs Support for Multidefs"
Revert "Document Multidefs"
Revert "Add a Multidef Test"
Revert "Update Test for Multidefs"
Revert "Process Multidefs"
Revert "Parser Multidef Support"
Revert "Lexer Support for Multidefs"
Revert "Add Multidef Data Structures"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/TGLexer.h
b9c29eaa3d2c39ce549c4bb2849a4d901acc8368 06-Oct-2011 David Greene <greened@obbligato.org> Lexer Support for Multidefs

Add keyword support for multidefs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/TGLexer.h
7c788888872233748da10a8177a9a1eb176c1bc8 01-Oct-2011 Peter Collingbourne <peter@pcc.me.uk> Move TableGen's parser and entry point into a library

This is the first step towards splitting LLVM and Clang's tblgen executables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/TGLexer.h