Skip to content
A parser compiler for Java, JavaScript, Python, Ruby
JavaScript CSS Other
Latest commit 860a04e Jun 14, 2016 @jcoglan Change precedence of actionable_expression; '("a" "b")+ %action' woul…
…d previously parse the (...) as a parenthesised actionable_expression and get confused by the +; whereas now the (...)+ parses as a repeated node as it should, and the %action binds to that.
Failed to load latest commit information.
bin Introduce a Java backend. Custom node factories not yet implemented. May 17, 2015


Canopy is a parser compiler targeting Java, JavaScript, Python and Ruby. It takes a file describing a parsing expression grammar and compiles it into a parser module in the target language. The generated parsers have no runtime dependency on Canopy itself.

For usage documentation see

See for instructions for building the project.


Copyright (C) 2010-2015 James Coglan

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

Something went wrong with that request. Please try again.