{"push_id":1101136611,"size":624,"distinct_size":0,"ref":"refs/heads/jsonMode","head":"b601926dc6d6b9ad9afa4290f3c2630014236589","before":"839dcc134c4269a1b483455eedf13dc0ca4f0551","commits":[{"sha":"08fee3031573417ade42a84205c6974f78c7f60b","author":{"email":"33c3a21d66a9e1545df8c291dec57e239743fd38@gmail.com","name":"Johny Jose"},"message":"Fixed an error in topState which used to return the penultimate state instead of the last state on the stack.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/08fee3031573417ade42a84205c6974f78c7f60b"},{"sha":"32bf30794cf80528ba132025a0043cd7042edab8","author":{"email":"5ff49c0469193f28bf329c870fc05eeba4b661b1@ufsc.br","name":"Elias"},"message":"reduced duplication in lib/jison.js","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/32bf30794cf80528ba132025a0043cd7042edab8"},{"sha":"47206a3350d3359a8190c6ff342c42a17bc53d55","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"patched the code generator as it broke on the offending line (where the action code is poured into a Function()) for action blocks such as this one:\n\n    ... rule ...\n    | TAN '(' e ')'\n        {\n            $$ = {\n                token:      FKW_FUNCTION,\n                token_attr: FKA_ABSOLUTE,\n                childs:     [null, $3],\n                loc_info:   @$,\n                type:       FT_NUMBER,\n                unit:       $3.unit,\n                value:      Math.abs($3.value)\n            };\n        }\n\nThe object creation like that would produce a 'Unexpected symbol' error.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/47206a3350d3359a8190c6ff342c42a17bc53d55"},{"sha":"34b6474759541441c4355f13e4f8faa004204bbd","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"and the same 'barf hairball on good action code' problem in the lexer, fixed now. Unfortunately it also means that errorneous generated action code is only detected when you try to run the generated parser.\n(I ran into the issue that jison is very whitespace sensitive: the lexer b0rked because a line separating two lexer rules contained a series of spaces and jison then decided that the second rule was simply some more action code of the first :-( )","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/34b6474759541441c4355f13e4f8faa004204bbd"},{"sha":"aa1c9790a4576d20874c31339001c3b4b1becdc1","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"fix: ensure that ALL tokens are converted to their numeric ID in the lexer actions. Of course the lexer MAY return strings but it is cleaner and faster to return numeric IDs every time.\n\nThis resolves the lexer output oddness for larger lexer action blocks where multiple 'return' statements can be placed in conditional sections inside the action block. for example (simplified):\n\n([A-Za-z0-9_][A-Za-z0-9_]*         %{\n    console.log(\"looking up row/column/named identifier token in symbol table: \", yytext, this, this.matches);\n    s = yytext.toUpperCase();\n    if (yy.symbolTable[s]) {\n        rv = yy.symbolTable[s];\n        yytext = {\n            text: yytext,\n            col: function() {\n                throw new Exception(\"I'll be buggered!\");\n            }\n        };\n        return rv.token;\n    }\n\n    // Would it be a viable basic column identifier?\n    match = s.match(/^[A-Z]+$/);\n    if (match) {\n        // check if this is a legal column id:\n        return 'COLUMN_ID';\n    }\n    // Would it be a viable basic row identifier?\n    match = s.match(/^[0-9]+$/);\n    if (match) {\n        return 'ROW_ID';\n    }\n    return 'error';\n%}","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/aa1c9790a4576d20874c31339001c3b4b1becdc1"},{"sha":"62a610a53e10f0ccc19be9503a10a016d4b2e0ca","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"http://api.jquery.com/live/ : .live() is long gone deprecated. Now it is finally removed and the code had to be changed to use .on() like it should.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/62a610a53e10f0ccc19be9503a10a016d4b2e0ca"},{"sha":"cce66aee9582eb4e0faf051bd2cd19698cf9a676","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"add some basic documentation to the generated parser for easier maintainability / usability of the generated code.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/cce66aee9582eb4e0faf051bd2cd19698cf9a676"},{"sha":"e25dbfbbc78154e7dd2b18ebc43e8b50fecde71c","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"NONASSOC constant defined twice + some code beautification (which also makes the generated code a bit more palatable for me) + minimal sync between base code and 'web/assets' copies.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/e25dbfbbc78154e7dd2b18ebc43e8b50fecde71c"},{"sha":"15f40fdce28d6415df200237ef6eed5254d1f15c","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"Merge remote-tracking branch 'remotes/CatTail/master'","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/15f40fdce28d6415df200237ef6eed5254d1f15c"},{"sha":"3c0cfaa31f0081ee030331f685d7166fd0039cac","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"coding practices","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/3c0cfaa31f0081ee030331f685d7166fd0039cac"},{"sha":"cebf52c7cf87a9157d48b3b7f8cd023f7ad678bc","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"updated jquery copy and added the gh-pages branch as submodule so we can work on both at the same time.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/cebf52c7cf87a9157d48b3b7f8cd023f7ad678bc"},{"sha":"e3dc9e69976a189ecc623518800be578aa693c98","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"added the handlebars grammar examples from the gh-pages branch","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/e3dc9e69976a189ecc623518800be578aa693c98"},{"sha":"b4f50348f47ed884b3ce8485b583530b1bf76358","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"copied the 'relative path' code from gh-pages back to the nanoc sources (TBD: get the layout to work for a/b/ subdirs again)\n\nThis copying includes the USF page updates (style, content and code) and the TRY page updates (linking to the USF page as that one is pretty useful during development)","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/b4f50348f47ed884b3ce8485b583530b1bf76358"},{"sha":"7b0e636880ce3204007dd97ec0f99beed3c198b8","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"make sure the parseError member function is reset to the default once a previous run of the same instance has temporarily overridden the parseError handler via the parser.yy.parseError override.\n\nsample code (shortened):\n  parser.yy.parseError = function local_override() { ... };\n  parser.parse(input_a);\n  // the next run should use the default error handler again:\n  parser.yy.parseError = null;\n  parser.parse(input_b);","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/7b0e636880ce3204007dd97ec0f99beed3c198b8"},{"sha":"18567d5b9f18cf348199a37c4393da96c95df993","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"outlining (whitespace/braces)","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/18567d5b9f18cf348199a37c4393da96c95df993"},{"sha":"e7435a690794dedf0c356bd09ce64d8aa9165b34","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"attempt at fixing the prototype bug in the parseError reset logic -- http://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/e7435a690794dedf0c356bd09ce64d8aa9165b34"},{"sha":"4c63ca6ba17bfe9dd7ce3bb82395abde63f33479","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"- generated code now includes the lexer methods' descriptions for improved readability of the generated code.\n\n- fixes the prototype bug in the parseError reset code: this fix is browser-independent.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/4c63ca6ba17bfe9dd7ce3bb82395abde63f33479"},{"sha":"5c928663baf248e5e90ca55f5d09335b41fcf3b0","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"added support for a 'backtracking' lexer: this is a standard (non-flex) lexer which for each matching regex will invoke the corresponding action code: when this returns a TOKEN (~ truthy value), then that token is produced (so far the behaviour is identical to the regular lexer); when no token is produced, then the context is rewound and the next matching regex is tried instead, until either a token has been produced or the lexer rules set (regex set) has been exhausted, in which case an ERROR exception is thrown (this last bit is identical to the default lexer too).\n\nThis behaviour can be controlled in the generated run-time by the options.backtrack_lexer boolean.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/5c928663baf248e5e90ca55f5d09335b41fcf3b0"},{"sha":"34130aab1f9477180dbe058c7a03ecc5d1ad531b","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"- added support for more() in the backtracking lexer: now when a lexer rule invokes more() it is assumed to have succeeded, just as when it would have returned a token.\n\n- The parser.lex() method has been corrected to correctly support the new lexer code, which will return boolean FALSE when no token was produced (so that .lexer.js() will recurse until a token has been produced by the lexer action code after all) -- I kept the recursion in there instead of turning it into a loop as it would rather quickly cause a fatal error in the JavaScript engine when the lexer action code is broken (and never produces a token): replacing this recursion by a loop would hang the lexer more or less indefinitely, making debugging such a situation much harder.\n\n- added comments for the lexer condition state methods.\n\n- fixed the topState method similar to commit 32bf30794cf80528ba132025a0043cd7042edab8 from @eliasdorneles\n\n- augmented the lexer condition state access methods to improve robustness (e.g. against overzealous use of popState() in user action code)\n\n- topState() now can produce one of the pushed lexer condition states when a (positive, non-zero) numeric index is passed as a parameter: topState(0) is identical to topState() and produces the currently active lexer condition state, while topState(1) produces the previously active lexer condition state, etc.\n\n- minor legibility tweak of the generated lexer code","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/34130aab1f9477180dbe058c7a03ecc5d1ad531b"},{"sha":"53b6a35d9a99db593e9d9a837573b847e650a26c","author":{"email":"4c7c3b42526b73e2d0e283a35bd5a4bbda355fc3@hobbelt.com","name":"Ger Hobbelt"},"message":"- lexer: corrected the backtracking feature: the user must call the lexer method .reject() to signal that the current lexer rule FAILED to match a suitable token. (This fixes the scenario where a lexer rule is used to skip whitespace: such a tule won't return a token, nor call more() and should still 'succeed'.)\n\n- lexer: ._less was unused\n\n- lexer: added the ._backtrack boolean member variable to track the invocation of reject() in the lexer action code.","distinct":false,"url":"https://api.github.com/repos/GerHobbelt/jison/commits/53b6a35d9a99db593e9d9a837573b847e650a26c"}]}