Qt qmake'nin belirsiz grameriyle hala mücadele ediyorum.PEG dilbilgisinde fonksiyon argümanları nasıl tanımlanır
Şimdi parantezi içerebilir fonksiyon argümanları (örneğin regex) tanımlamak için bir yol bulamıyorum:
functionName(arg1, "arg2", ^(arg3)+$)
böyle işlev çağrısını açıklamak için denedim:
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]
Böyle bir dilbilgisinde tırnak/çift tırnak kullanılmadan gömülü parantez için nasıl destek ekleyebilirim? Parantez içinde işlev argümanları ve nasıl kapanış işlevini ayırt edebilirim?
Geçerli işlev çağrısı örneği:
contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*)
^(/ usr)?/Lib (64)?. * 'Nedir? –
Sadece JS benzeri bir düzenli ifade – eraxillan