Skip to main content
Participant
September 3, 2008
Question

Problem calling the as parser directly

  • September 3, 2008
  • 6 replies
  • 835 views
<div class=Section1><br /><br /><p class=MsoNormal>I am building an asdoclet (similar to java doclet) for &#8220;.as&#8221;<br />files and in order to parse the &#8220;.as&#8221; files I am calling the &#8220;macromedia.asc.parser.Parser&#8221;<br />as shown below:<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='text-indent:4.5pt'>private static ProgramNode<br />parse_asc(File file) throws IOException {<o:p></o:p></p><br /><br /><p class=MsoNormal style='text-indent:4.5pt'>  Context cx = new<br />Context(new ContextStatics());<o:p></o:p></p><br /><br /><p class=MsoNormal>    ByteArrayInputStream in =<br />getInputStream(file);<o:p></o:p></p><br /><br /><p class=MsoNormal>    cx.setScriptName(file.getName());<o:p></o:p></p><br /><br /><p class=MsoNormal>    cx.setPath(file.getParent());<span<br />lang=FR><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span lang=FR><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span lang=FR>    Parser parser = new Parser(cx,<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span lang=FR>                              <br /></span>in,<o:p></o:p></p><br /><br /><p class=MsoNormal>                              <br />file.getAbsolutePath().replace('\\', '/'),<o:p></o:p></p><br /><br /><p class=MsoNormal>                              <br />true, // emit doc info<o:p></o:p></p><br /><br /><p class=MsoNormal>                              <br />true); // save comment nodes<o:p></o:p></p><br /><br /><p class=MsoNormal>    return parser.parseProgram();<o:p></o:p></p><br /><br /><p class=MsoNormal>  }<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>The Parser can be found here:<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal><a<br />href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java">http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java</a><o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>My problem is that everything parses fine in the SDK and my<br />files *<b>except</b>* expressions like this in a class:<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>public static const TOP_LEFT:int = (0x0001 | 0x0004);<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>The error that I get from the parser is:<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>        Embedded error:<br />bitwiseor at line &#8230;<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>Does anyone have an  idea as to why I may be getting<br />this problem? Is there a better (cleaner) way to set up the parser to use it<br />externally like this?<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>Thanks in advance for any help you can provide.<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>Julian Payne<o:p></o:p></p><br /><br /><p class=MsoNormal>ILOG S.A.<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /></div>
This topic has been closed for replies.

6 replies

Participating Frequently
September 8, 2008
Hurrah! The context fixed it?
- Jono


On Sep 7, 2008, at 11:10 PM, "Julian Payne" < member@adobeforums.com> wrote:

A new message was posted by Julian Payne in



Developers --

  Problem calling the as parser directly







Jono,



 



That helped me fix my problem which was not in the compiler
finally.



 



Thanks for your help,



 



Julian



 









From: Jono Spiro [ mailto:member@adobeforums.com]


Sent: Friday, September 05, 2008 7:30 PM

To: flexsdk-dev@adobeforums.com

Subject: Re: Problem calling the as parser directly







 



A new message was posted by
Jono Spiro in



Developers --

  Problem calling the as parser directly



Why don't you try making a context with
AbstractSyntaxTreeUtil.generateContext()?



If that doesn't work, you'll just have to trace through it, I'm afraid...



Cheers,

Jono










View/reply at Problem calling the as
parser directly


Replies by email are OK.

Use the unsubscribe
form to cancel your email subscription.













View/reply at Problem calling the as parser directly

Replies by email are OK.

Use the unsubscribe form to cancel your email subscription.


Participant
September 8, 2008
<div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Jono,<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>That helped me fix my problem which was not in the compiler<br />finally.<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Thanks for your help,<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Julian<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><br /><br /><div><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Jono Spiro [mailto:member@adobeforums.com]<br /><br><br /><b>Sent:</b> Friday, September 05, 2008 7:30 PM<br><br /><b>To:</b> flexsdk-dev@adobeforums.com<br><br /><b>Subject:</b> Re: Problem calling the as parser directly<o:p></o:p></span></p><br /><br /></div><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new message was posted by<br />Jono Spiro in <br><br /><br><br /><b>Developers</b> --<br><br />  Problem calling the as parser directly<br><br /><br><br />Why don't you try making a context with<br />AbstractSyntaxTreeUtil.generateContext()? <br><br /><br><br />If that doesn't work, you'll just have to trace through it, I'm afraid... <br><br /><br><br />Cheers, <br><br />Jono <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b65f21/3">Problem calling the as<br />parser directly</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b65f21!folder=.3c060fa3">unsubscribe</a><br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div><br /><br /></div>
Participating Frequently
September 5, 2008
Why don't you try making a context with AbstractSyntaxTreeUtil.generateContext()?

If that doesn't work, you'll just have to trace through it, I'm afraid...

Cheers,
Jono
Participating Frequently
September 3, 2008
<div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Oh sorry, apparently the email didnât fully load when I got it.<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Did you copy this essentially from As3Compiler.java? Iâd start<br />there if you havenât. Ideas: Your text encoding should be a plain ascii string,<br />probably with CRLFs, or specify an encoding. Have you tried parsing without<br />docinfo and saving comment nodes? Have you tried a simpler AS file? The code<br />below looks fine, but itâs missing detail on the input to the compiler. (That<br />said, please donât send me your file unless you are filing a bug report, in<br />which case use JIRA </span><span style='font-size:11.0pt;font-family:Wingdings;<br />color:#1F497D'>J</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>).<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>You could try debugging MXMLC during a compile of this file and<br />compare the variables at runtime in As3Compiler when constructing a Parser.<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Iâll push this to someone else to see if they have ideasâ¦<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Jono<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Julian Payne<br />[mailto:member@adobeforums.com] <br><br /><b>Sent:</b> Wednesday, September 03, 2008 8:35 AM<br><br /><b>To:</b> flexsdk-dev@adobeforums.com<br><br /><b>Subject:</b> RE: Problem calling the as parser directly<o:p></o:p></span></p><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new message was posted by<br />Julian Payne in <br><br /><br><br /><b>Developers</b> --<br><br />  Problem calling the as parser directly<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Jono,</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I<br />provided the code in the original message, I am parsing each whole .as file and<br />then traversing the AST. As you can see from my code I create a new context for<br />each file like this:</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Context<br />cx = new Context(new ContextStatics());</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thanks,</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Julian</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Jono Spiro<br />[mailto:member@adobeforums.com] <br><br /><b>Sent:</b> Wednesday, September 03, 2008 5:17 PM<br><br /><b>To:</b> flexsdk-dev@adobeforums.com<br><br /><b>Subject:</b> Re: Problem calling the as parser directly</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>A new<br />message was posted by Jono Spiro in <br><br /><br><br /><b>Developers</b> --<br><br />  Problem calling the as parser directly<br><br /><br><br />How are you invoking it? You can't really parse sub elements individually--you<br />need to do the whole tree starting with the programnode.<br><br />Also, you need to init it correctly, with a fresh context, etc. Hard to say<br />without knowing how you use it.<br><br />Jono<br><br /><br><br />On Sep 3, 2008, at 3:22 AM, &quot;Julian Payne&quot; &lt;<a<br />href="mailto:member@adobeforums.com">member@adobeforums.com</a>&gt; wrote:<br><br /><br><br /><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>A new<br />discussion was started by Julian Payne in <br><br /><br><br /><b>Developers</b> --<br><br />  Problem calling the as parser directly<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I<br />am building an asdoclet (similar to java doclet) for â.asâ files and in order to<br />parse the â.asâ files I am calling the âmacromedia.asc.parser.Parserâ as shown<br />below:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;<br />text-indent:4.5pt'>private static ProgramNode parse_asc(File file) throws<br />IOException {<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;<br />text-indent:4.5pt'>  Context cx = new Context(new ContextStatics());<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />ByteArrayInputStream in = getInputStream(file);<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />cx.setScriptName(file.getName());<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />cx.setPath(file.getParent());<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />lang=FR> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />lang=FR>    Parser parser = new Parser(cx,</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />lang=FR>                              <br /></span>in,<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                              <br />file.getAbsolutePath().replace('\\', '/'),<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                              <br />true, // emit doc info<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                              <br />true); // save comment nodes<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />return parser.parseProgram();<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <br />}<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>The<br />Parser can be found here:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a<br />href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java">http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java</a><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>My<br />problem is that everything parses fine in the SDK and my files *<b>except</b>*<br />expressions like this in a class:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>public<br />static const TOP_LEFT:int = (0x0001 | 0x0004);<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>The<br />error that I get from the parser is:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>       <br />Embedded error: bitwiseor at line â¦<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Does<br />anyone have an  idea as to why I may be getting this problem? Is there a<br />better (cleaner) way to set up the parser to use it externally like this?<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks<br />in advance for any help you can provide.<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Julian<br />Payne<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>ILOG<br />S.A.<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'> <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>View/reply<br />at <a href="http://www.adobeforums.com/webx?13@@.59b65f21">Problem calling the<br />as parser directly</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b65f21!folder=.3c060fa3">unsubscribe</a><br />form to cancel your email subscription.<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'> <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>View/reply<br />at <a href="http://www.adobeforums.com/webx?13@@.59b65f21/0">Problem calling<br />the as parser directly</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b65f21!folder=.3c060fa3">unsubscribe</a><br />form to cancel your email subscription.<o:p></o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b65f21/1">Problem calling the as<br />parser directly</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b65f21!folder=.3c060fa3">unsubscribe</a><br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div>
Participant
September 3, 2008
<div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Jono,<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>I provided the code in the original message, I am parsing each whole<br />.as file and then traversing the AST. As you can see from my code I create a<br />new context for each file like this:<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Context cx = new Context(new ContextStatics());<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Thanks,<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Julian<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><br /><br /><div><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Jono Spiro<br />[mailto:member@adobeforums.com] <br><br /><b>Sent:</b> Wednesday, September 03, 2008 5:17 PM<br><br /><b>To:</b> flexsdk-dev@adobeforums.com<br><br /><b>Subject:</b> Re: Problem calling the as parser directly<o:p></o:p></span></p><br /><br /></div><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>A new message was posted by Jono Spiro in <br><br /><br><br /><b>Developers</b> --<br><br />  Problem calling the as parser directly<br><br /><br><br />How are you invoking it? You can't really parse sub elements individually--you<br />need to do the whole tree starting with the programnode.<br><br />Also, you need to init it correctly, with a fresh context, etc. Hard to say<br />without knowing how you use it.<br><br />Jono<br><br /><br><br />On Sep 3, 2008, at 3:22 AM, &quot;Julian Payne&quot; &lt;<a<br />href="mailto:member@adobeforums.com">member@adobeforums.com</a>&gt; wrote:<br><br /><br><br /><br><br /><o:p></o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new discussion was started by<br />Julian Payne in <br><br /><br><br /><b>Developers</b> --<br><br />  Problem calling the as parser directly<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I<br />am building an asdoclet (similar to java doclet) for â.asâ files and in order<br />to parse the â.asâ files I am calling the âmacromedia.asc.parser.Parserâ as<br />shown below:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;<br />text-indent:4.5pt'>private static ProgramNode parse_asc(File file) throws<br />IOException {<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;<br />text-indent:4.5pt'>  Context cx = new Context(new ContextStatics());<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />ByteArrayInputStream in = getInputStream(file);<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />cx.setScriptName(file.getName());<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />cx.setPath(file.getParent());<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />lang=FR> </span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />lang=FR>    Parser parser = new Parser(cx,</span><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span<br />lang=FR>                              <br /></span>in,<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                              <br />file.getAbsolutePath().replace('\\', '/'),<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                              <br />true, // emit doc info<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                              <br />true); // save comment nodes<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>   <br />return parser.parseProgram();<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <br />}<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>The<br />Parser can be found here:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a<br />href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java">http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java</a><o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>My<br />problem is that everything parses fine in the SDK and my files *<b>except</b>*<br />expressions like this in a class:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>public<br />static const TOP_LEFT:int = (0x0001 | 0x0004);<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>The<br />error that I get from the parser is:<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>       <br />Embedded error: bitwiseor at line â¦<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Does<br />anyone have an  idea as to why I may be getting this problem? Is there a<br />better (cleaner) way to set up the parser to use it externally like this?<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks<br />in advance for any help you can provide.<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Julian<br />Payne<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>ILOG<br />S.A.<o:p></o:p></p><br /><br /><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b65f21">Problem calling the as<br />parser directly</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b65f21!folder=.3c060fa3">unsubscribe</a><br />form to cancel your email subscription.<o:p></o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b65f21/0">Problem calling the as<br />parser directly</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b65f21!folder=.3c060fa3">unsubscribe</a><br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div><br /><br /></div>
Participating Frequently
September 3, 2008
How are you invoking it? You can't really parse sub elements individually--you need to do the whole tree starting with the programnode.

Also, you need to init it correctly, with a fresh context, etc. Hard to say without knowing how you use it.

Jono


On Sep 3, 2008, at 3:22 AM, "Julian Payne" < member@adobeforums.com> wrote:

A new discussion was started by Julian Payne in



Developers --

  Problem calling the as parser directly







I am building an asdoclet (similar to java doclet) for â.asâ
files and in order to parse the â.asâ files I am calling the âmacromedia.asc.parser.Parserâ
as shown below:



 



private static ProgramNode
parse_asc(File file) throws IOException {



  Context cx = new
Context(new ContextStatics());



    ByteArrayInputStream in =
getInputStream(file);



    cx.setScriptName(file.getName());



    cx.setPath(file.getParent());



 



    Parser parser = new Parser(cx,



                              
in,



                              
file.getAbsolutePath().replace('\\', '/'),



                              
true, // emit doc info



                              
true); // save comment nodes



    return parser.parseProgram();



  }



 



The Parser can be found here:



 



http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/Parser.java



 



My problem is that everything parses fine in the SDK and my
files * except* expressions like this in a class:



 



public static const TOP_LEFT:int = (0x0001 | 0x0004);



 



The error that I get from the parser is:



 



        Embedded error:
bitwiseor at line â¦



 



Does anyone have an  idea as to why I may be getting
this problem? Is there a better (cleaner) way to set up the parser to use it
externally like this?



 



Thanks in advance for any help you can provide.



 



Julian Payne



ILOG S.A.



 











View/reply at Problem calling the as parser directly

Replies by email are OK.

Use the unsubscribe form to cancel your email subscription.