[cfe-dev] Adding parallelism construct.

Douglas Gregor dgregor at apple.com
Mon Sep 26 08:39:28 PDT 2011


On Sep 21, 2011, at 10:56 AM, Anderson, Todd A wrote:

> I'm adding a set of extensions to clang to support a language we're developing and one of those extensions is a new statement type of the form:
> 
> par function_call_expression;
> 
> I'm detecting the new keyword "par" in ParseStatementOrDeclaration and then passing parsing over to a new function.  My question is how to structure that function.  Is there any existing function in clang which parses something that is a priori known (or expected) to be a function call?  It doesn't seems that clang would need such a function so perhaps a better approach is to use one of existing generic expression parsing functions (ParseCastExpression or something else?) and then check to see if the resulting expression was of a single function call type.

Yes, this is the best option.

>  Is there any easy way to check if an expression generated with an existing function is a function call?


The expression will be a CallExpr if it's a simple call, which can be queried with isa<CallExpr>(some expr) or extracted with dyn_cast<CallExpr>(some expr). You can use

	clang -cc1 -ast-dump <filename>

to see the parsed structure of an expression.

	- Doug



More information about the cfe-dev mailing list