{"push_id":736670704,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"db27ff501a0d0a12f99c7a1918764fbbecb631c7","before":"e2109617b4a41daf2511374e47c628ed1a09de14","commits":[{"sha":"db27ff501a0d0a12f99c7a1918764fbbecb631c7","author":{"email":"c36fd7bb28c992234d52d5a56feefa2c292f1726@gmail.com","name":"Katherine Whitlock"},"message":"Add an updated ocaml parser\n\nSummary:\nThis commit fixes ticket sf-bugs:300 (improper handling of ';;' at toplevel)\nand sf-bugs:355 (error on parsing empty file). But more importantly, it adds\nsupport for:\n\nproper function recognition (kinda)\nlet rec ... and ...\nmodule [rec] M : sig ... end = struct ... end\nmodule [rec] M = struct ... end and N = struct ... end\n\nMost of these changes required a single-token lookahead,\nso I added this to all of the parsing functions. It's now\nused rather prolifically.\n\nFunction discovery relies upon the assumption that most\npeople write functions like\nlet [rec] my_func a b c = ... or\nlet [rec] my_func () = ... or\nlet [rec] () = ...\nlet [rec] _ = ...\n\nStill unsupported are things such as\nlet [rec] my_func = function MyCon1 -> ... | MyCon2 ...\nlet [rec] my_func = fun a b c d -> ...\nThe first would require two-token lookahead, while\nlast would require an n-token lookahead. Although, support\n_may_ be able to be added by using a 'functionValidation'\nfunction similar to constructorValidation. Something to look into.","distinct":true,"url":"https://api.github.com/repos/toroidal-code/ctags/commits/db27ff501a0d0a12f99c7a1918764fbbecb631c7"}]}