6
私はまだQtのqmakeのあいまいな文法と戦っています。PEG文法における関数の引数の記述方法
今、私は括弧を含めることができ、関数の引数(例えば正規表現)を記述するための方法を見つけることができません。
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)?.*)
'^(/ usr)とは何ですか?/ lib(64)?*? –
JSのような正規表現 – eraxillan