[cfe-dev] extend C syntax in clang plug-in?

hongborong hongbo.rong at intel.com
Mon Nov 17 19:00:53 PST 2014

I want to experiment with some syntax extensions to C, including some new
built-in types and new statements. Can it be done completely in a plugin?
Any related examples to look at?

For an extremely simple example, let us say we have
	int A; 
	A, B = 1, [1.0, 2.0];
Here B is untyped, and [1.0, 2.0] is not an expected expression. Instead of
throwing errors, can we write a clang plugin to do the following? (1)
Pre-process the token stream. For example, the second statement can be
broken into two statements: A=1; B=[1.0, 2.0]; That gives us a new token
stream. (2) Parse. For the statement “B=[1.0, 2.0]”, build a customized AST
node, and insert it to the function’s AST. (3) Some additional analysis may
be done on the function’s AST. (4) Finally, transform the function's AST so
that it completely conforms to standard C.


View this message in context: http://clang-developers.42468.n3.nabble.com/extend-C-syntax-in-clang-plug-in-tp4042499.html
Sent from the Clang Developers mailing list archive at Nabble.com.

More information about the cfe-dev mailing list