私はまだ Qt の qmake のあいまいな文法と戦っています。
今、括弧を含むことができる関数の引数を記述する方法を見つけることができません (例: 正規表現):
functionName(arg1, "arg2", ^(arg3)+$)
関数呼び出しを次のように記述しようとしました。
FunctionCall = Identifier space* "(" space* FunctionArgumentList? space* ")" space* eol*
FunctionArgumentList = FunctionArgumentString ((space* "," space* FunctionArgumentString)* / (blank* FunctionArgumentString)*)
FunctionArgumentString = ReplaceFunctionCall / TestFunctionCall / EnquotedString / RegularFunctionArgumentString
RegularFunctionArgumentString = RegularFunctionArgumentStringChar+
RegularFunctionArgumentStringChar = !(")" / blank / "," / quote / doublequote) SourceCharacter
SourceCharacter <- [\u0000-\uFFFC]
このような文法で、引用符/二重引用符なしの埋め込み括弧のサポートを追加するにはどうすればよいですか? 関数の引数内の括弧と関数を閉じる括弧を区別するにはどうすればよいですか?
有効な関数呼び出しの例:
contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*)