Patrick Thomson
Patrick Thomson
e.g. ``` haskell cmain = function "main" int_t $ block $ do call "printf" [str "hello world"] decl int_t "x" (Just (int 0)) ret "x" ```
Certain aspects of parsing (like parsing `long int int x;`) cause information to be dropped silently on the floor. This is bad. Trifecta can probably give us a nicely-formatted warning....
Would be pretty cool, and another example of a neat catamorphism.
We need a coherent set of lenses/traversals that make it easy to access the common elements of an AST: names, positions, children, return types, etc. These should probably take the...
[`Data.Comp.Variables`](http://hackage.haskell.org/package/compdata-0.7.0.1/docs/Data-Comp-Variables.html) provides a bunch of really neat traversals/queries for variables and things that contain variables. We need to get this integrated into Bracer, as it'll probably end up being essential.
The function `static int (*fn)()` is parsed as a pointer to a function returning a static int, not a pointer to a static function returning an int.
Right now, you can't do the following: ``` haskell newtype CustomCParser a = CustomParser (CCParser a) deriving ( , IdentifierParsing , TypeParsing , ExpressionParsing , StatementParsing ) ``` because you...
Right now the API for how a Bracer parser parses literal values is still pretty primitive: the `LiteralParsing` type family only provides a signature type `LiteralSig` and a `parseLiteral` method....
Combining the semantic and parsing steps is, I think, just too difficult. (Fiddly at the very least.) Perhaps we should explore moving away from parser combinators and towards a more...