'Set the input cursor to the position indicated by index.  This is
normally used to seek ahead in the input stream.  No buffering is
required to do this unless you know your stream will use seek to
move backwards such as when backtracking.
This is different from rewind in its multi-directional
requirement and in that its argument is strictly an input cursor
(index).
For char streams, seeking forward must update the stream state such
as line number.  For seeking backwards, you will be presumably
backtracking using the mark/rewind mechanism that restores state and
so this method does not need to update state when seeking backwards.
Currently, this method is only used for efficient backtracking using
memoization, but in the future it may be used for incremental parsing.
The index is 0..n-1.  A seek to position i means that LA(1) will
return the ith symbol.  So, seeking to 0 means LA(1) will return the
first element in the stream.'

def seek(self, index):

    raise NotImplementedError
