[PATCH] D79936: [FileCheck] Add function call support to numerical expressions.
    Thomas Preud'homme via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri May 29 04:18:26 PDT 2020
    
    
  
thopre added inline comments.
================
Comment at: llvm/lib/Support/FileCheck.cpp:287
+  // Try to parse a function call.
+  if (Expr.startswith(CallPrefix)) {
+    if (AO != AllowedOperand::Any)
----------------
jhenderson wrote:
> I'm not strongly opposed to the use of `!` to indicate a function call, but is it actually necessary? It seems like a function call could just be identified by `<sequence of identifier chars>(<some chars>)`. The code would look something like the following semi-pseudo code:
> 
> ```
> size_t Parenthesis = Expr.find_first_of('(');
> if (Parenthesis != npos) {
>   if (all_of(Expr.take_front(Parenthesis), [](char C) { 
>       return isValidIdentifierChar(C);
>     }) {
>     if (AO != AllowedOperand::Any)
>       return ErrorDiagnostic::get(SM, Expr, "unexpected function call");
> 
>     return parseCallExpr(Expr, LineNumber, Context, SM);
>   }
> }
> ```
> 
> Assuming I've not missed something, that would allow us to simplify all the usages of function calls.
Regardless of the ease of implementation, I like the ! prefix since these are builtin functions/operators, not something the user can define. YMMV of course
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79936/new/
https://reviews.llvm.org/D79936
    
    
More information about the llvm-commits
mailing list