2009-08-04 4 views
2

AS3 파일을 개체 나 XML로 구문 분석 할 수있는 한 가까이 다가 가고자합니다. 심지어, 나는이 같은 좋은, 깔끔한 XML 구조를 얻을 수없는 경우에도 ...as (AS3) 파일을 구문 분석하는 방법

<package name=""> 
    <class id="783" name="SomeClass" extendsId="782"> 
     <variable id="784" visibility="private" type="Number"/> 
     <function id="785" name="someMethod" returnType="void"> 
     <parameter id="786" name="someParameter" type="Number"> 
      <expression> 
       <number value="4"/> 
      </expression> 
     </parameter> 
     <variable id="787" name="someLocalVariable" type="Number"/> 
     <code> 
      <assign toId="787"> 
       <expression> 
        <variable id="786"/> 
        <operator type="*"/> 
        <expression> 
        <number value="2"/> 
        <operator type="+"/> 
        <variable id="786"/> 
        </expression> 
       </expression> 
      </assign> 
     </code> 
     </function> 
    </class> 
</package> 

: 구문 분석 할 때

package { 
    class SomeClass extends AnotherClass { 
     private var someVariable:Number 

     public function someMethod(someParameter:Number = 4):void { 
     var someLocalVariable:Number = someParameter * (2 + someVariable); 
     } 
    } 
} 

, 그것은 같은 수 있습니다 : 예를 들어, 다음과 같은 클래스를 상상 만약 AS3을 어떤 종류의 용량으로 파싱 할 수 있다면, 그것은 내가 지금있는 곳을 넘어서는 길일 것입니다.

의견이 있으십니까?

덕분에, 에릭

+0

, 당신이 원하는 :

당신은 – skaffman

+0

그것은 그것이 들리는 것이다. –

+0

컴파일러 이론이나 유한 오토 마타에 대해 얼마나 잘 알고 있습니까? –

답변

4

FlexPMD에는 as3 파서가 있습니다. (있는 FlexPMD는 AS3 소스 코드의 모범 사례 위반보고 않습니다 Adobe의 자바 프로젝트입니다.)

있는 FlexPMD는 http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD

코드는 http://opensource.adobe.com/svn/opensource/flexpmd/trunk

아래쪽 측에 서브 버전의 repo에에서 호스팅 FlexPMD를 ​​빌드하기 위해 Maven을 사용해야 할 필요가 있습니까? (저, 저는 그럭저럭 일할 수 없었습니다).하지만 한두 개의 프로젝트가 필요하기 때문에 저주와 외침을하지 않고 손으로 추출 할 수 있습니다.

또한 Adobe에서 as3을 파싱하기위한 다른 소프트웨어를 제공하는지 확인하려면 Flex SDK 소스 코드 (opensource.adobe.com)를 계속 방문하고 싶지만 여기서는 보지 않았습니다.

5

실제로 PMD 파서를 AS3으로 포팅했습니다. 즉

+3

링크가 더 이상 작동하지 않습니다. http://github.com/teotigraphix/asblocks로 이동 한 것 같습니다. –

+1

링크가 깨졌습니다. 아마도 오른쪽에있는 거? github.com/teotigraphix/as3-commons-asblocks – Enrique

관련 문제