code: function generateClauseReaderIfTokenFound (
       
                          tokenDetector, clauseEvaluatorGenerators,
                           
                          jsonPath, parserGeneratedSoFar, onSuccess) {
                          
        var detected = tokenDetector(jsonPath);
  
        if(detected) {
           var compiledParser = expressionsReader(
                                   clauseEvaluatorGenerators, 
                                   parserGeneratedSoFar, 
                                   detected
                                ),
           
               remainingUnparsedJsonPath = jsonPath.substr(len(detected[0]));                
                                 
           return onSuccess(remainingUnparsedJsonPath, compiledParser);
        }         
     }
docs: If jsonPath matches the given detector function, creates a function which
  evaluates against every clause in the clauseEvaluatorGenerators. The
  created function is propagated to the onSuccess function, along with
  the remaining unparsed JSONPath substring.
  
  The intended use is to create a clauseMatcher by filling in
  the first two arguments, thus providing a function that knows
  some syntax to match and what kind of generator to create if it
  finds it. The parameter list once completed is:
  
  (jsonPath, parserGeneratedSoFar, onSuccess)
  
  onSuccess may be compileJsonPathToFunction, to recursively continue
  parsing after finding a match or returnFoundParser to stop here.