[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