 # Common ancestor of special parsers which don't consume any token.
 exports.EpsilonParser = class EpsilonParser extends Parser
 
+# Only succeed if the next token is preceded by some spacing.
 class Space extends EpsilonParser
     toString: -> "Space"
     parse: (lx) -> return (if lx.peek().s then true else fail)
 exports.space = new Space()
 
+# Only succeed if the next token is NOT preceded by some spacing.
 class NoSpace extends EpsilonParser
     toString: -> "NoSpace"
     parse: (lx) -> return (if lx.peek().s then fail else true)
 exports.noSpace = new NoSpace()
 
+# Always succeed and return null.
 class Nothing extends EpsilonParser
     toString: -> "Nothing"
     parse: -> null

        log "prefix\n"
        p  = @getParser @prefix, lx.peek()
        op = p.parser.call lx if p?
        log "op:#{op}\n"
        if p and op != fail
            e = @call lx, p.prec
            return @partialBuild p, op, e

# Grammar generator
#

enableLogs = false
if enableLogs then log = print else log = ->

this.exports = this unless process?

