2016-09-12 9 views
3

빠른 질문에 대한 답변 conditional parsing on hexIoC.조건부 변수를 사용하여 런타임시 XmlCompiler로 정의합니다.

아시다시피 hexIoC는 컴파일 시간과 런타임에서 다중 패스를 사용하여 DSL 구문 분석을 지원합니다.

조건부 변수 값이있는 XmlCompiler를 런타임에 정의 할 수있는 솔루션이 있습니까? 같은

뭔가 : 나를 왜 지금 설명하게

var useHlsJs:Bool = true; 
#if js 
useHlsJs = useHlsJs && !this.isMobile(); 
#end 
applicationAssembler = XmlCompiler.readXmlFile("videoplayer/configuration/context.xml", null, ["useHlsJs" => useHlsJs]); 

답변

3

번호.

XmlCompiler에 의해 구문 분석 된 Xml은 끝에 플랫폼 코드 (JS, Php ...)를 생성하고이를 수행하기 위해 생성하기 전에 조건부 변수를 사용하여 구문 분석합니다.

즉, 런타임에는이 조건부 DSL이 더 이상 존재하지 않는다는 것을 의미합니다. DSL이 구문 분석되어 플랫폼 코드로 변환되고 조건부 변수로 제외 된 모든 블록이 제거되었습니다. 런타임에서 조건을 사용하여 DSL의 일부, 당신은이 부분 대신 XmlCompiler의 XmlReader를 사용해야합니다 구문 분석하려면

<root name="applicationContext"> 
    <test if="js" id="s" value="hello JS"/> 
    <test if="php" id="s" value="hello PHP"/> 
</root> 

이 = -D PHP로

coreFactory.register("s", "hello PHP"); 

사실이 생성됩니다 .