I scoured the Mix and Solidity repos for something like a formal definition of the language's grammar, so that one may generate parsers using tools like GrammarKit, but couldn't find anything.
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
There's a file called grammar.txt in the Solidity repo:
That's probably what you're looking for?
Here's yet another link pointing to the solidity documentation:
There is also a xText grammar, https://github.com/webdaford/smart-contract-tools/blob/master/workspace/com.dell.research.bc.eth.solidity.editor/src/com/dell/research/bc/eth/solidity/editor/Solidity.xtext which is quite similar to BNF.