1
현재 pyparsing 재귀 템플릿을 구문 분석하려고합니다. 템플릿은 다음과 같이 할 수 있습니다pyparsing 재귀 템플릿을 구문 분석
{{Attribute
| name=attr1
| description=First attribute.}}
템플릿의 이름 (특성)을 가지고 있으며, 몇 가지 변수 정의 (이름 = ATTR1, 설명 = 첫 번째 속성을.). 그러나, 0 개 이상의 템플릿을 포함 할 수있는 템플릿도있다 :
{{Enum
| name=MyEnum
| description=Just a test enum.
| example=Not given...
| attributes={{Attribute
| name=attr1
| description=First attribute.}}
{{Attribute
| name=attr2
| description=Second attribute.}}}}
는 이러한 템플릿을 분석하기 위해 내가 해낸 다음과 같은 :
template = Forward()
lb = '{{'
rb = '}}'
template_name = Word(alphas)
variable = Word(alphas)
value = CharsNotIn('|{}=') | Group(ZeroOrMore(template))
member = Group(Suppress('|') + variable + Suppress('=') + value)
members = Group(OneOrMore(member))
template << Suppress(lb) + Group(template_name + members) + Suppress(rb)
이 아주 잘 작동하지만, 나에게 허용하지 않습니다 내가 그것을 사용하고 싶다면 문제가되는 값 내에서 "| {} ="을 사용하십시오. 예 :
{{Enum
| name=MyEnum
| description=Just a test enum.
| example=<python>x = 1</python>
| attributes=}}
그래서 이러한 문자를 허용하도록 코드를 어떻게 변경할 수 있습니까? Unforunately, 나는 이것이 어떻게 성취 할 수 있는지 전혀 모른다.
누군가가 내게 도움이되기를 바랍니다.