I think I have mastered parsing AST. :) This took me one day to do from
downloading Rhino and never using it to what you see now. hahah

Mik

On Thu, Jun 4, 2015 at 5:18 PM, Alex Harui <aha...@adobe.com> wrote:

> Also amazing!
>
> On 6/4/15, 2:14 PM, "Michael Schmalle" <teotigraphix...@gmail.com> wrote:
>
> >Check out the screen shot;
> >
> >http://snag.gy/XyytR.jpg
> >
> >Inheritance and everything is working. :)
> >
> >Mike
> >
> >On Thu, Jun 4, 2015 at 5:07 PM, Alex Harui <aha...@adobe.com> wrote:
> >
> >> Amazing!
> >>
> >> On 6/4/15, 2:04 PM, "Michael Schmalle" <teotigraphix...@gmail.com>
> >>wrote:
> >>
> >> >Well so far I have got the below compiling into .as classes and
> >>interfaces
> >> >using the following externals files;
> >> >
> >> >There is a definite order these need to be parsed in, I am still
> >>figuring
> >> >them out. I plan on adding in the asdocs, the version of JS the API was
> >> >introduced in.
> >> >
> >> >Mike
> >> >
> >> >html5.js
> >> >missing.js
> >> >w3c_css.js
> >> >w3c_css3d.js
> >> >w3c_dom1.js
> >> >w3c_dom2.js
> >> >w3c_dom3.js
> >> >w3c_event.js
> >> >w3c_range.js
> >> >
> >> >
> >> >Attr.as
> >> >CanvasGradient.as
> >> >CanvasPattern.as
> >> >CanvasRenderingContext2D.as
> >> >CaretPosition.as
> >> >CDATASection.as
> >> >CharacterData.as
> >> >ClientInformation.as
> >> >ClientRect.as
> >> >ClientRectList.as
> >> >Comment.as
> >> >Counter.as
> >> >CSSCharsetRule.as
> >> >CSSFontFaceRule.as
> >> >CSSImportRule.as
> >> >CSSInterface.as
> >> >CSSMatrix.as
> >> >CSSMediaRule.as
> >> >CSSPageRule.as
> >> >CSSPrimitiveValue.as
> >> >CSSProperties.as
> >> >CSSRule.as
> >> >CSSRuleList.as
> >> >CSSStyleDeclaration.as
> >> >CSSStyleRule.as
> >> >CSSStyleSheet.as
> >> >CSSUnknownRule.as
> >> >CSSValue.as
> >> >CSSValueList.as
> >> >CustomEvent.as
> >> >Database.as
> >> >DatabaseCallback.as
> >> >DataTransfer.as
> >> >DedicatedWorkerGlobalScope.as
> >> >Document.as
> >> >DocumentCSS.as
> >> >DocumentEvent.as
> >> >DocumentFragment.as
> >> >DocumentRange.as
> >> >DocumentStyle.as
> >> >DocumentType.as
> >> >DOMApplicationCache.as
> >> >DOMConfiguration.as
> >> >DOMError.as
> >> >DOMErrorHandler.as
> >> >DOMException.as
> >> >DOMImplementation.as
> >> >DOMImplementationCSS.as
> >> >DOMImplementationList.as
> >> >DOMImplementationSource.as
> >> >DOMLocator.as
> >> >DOMStringList.as
> >> >DOMTokenList.as
> >> >DragEvent.as
> >> >Element.as
> >> >ElementCSSInlineStyle.as
> >> >Entity.as
> >> >EntityReference.as
> >> >ErrorEvent.as
> >> >Event.as
> >> >EventListener.as
> >> >EventTarget.as
> >> >ExceptionCode.as
> >> >FileList.as
> >> >FontFace.as
> >> >FontFaceSet.as
> >> >HashChangeEvent.as
> >> >HTMLAnchorElement.as
> >> >HTMLAppletElement.as
> >> >HTMLAreaElement.as
> >> >HTMLAudioElement.as
> >> >HTMLBaseElement.as
> >> >HTMLBaseFontElement.as
> >> >HTMLBodyElement.as
> >> >HTMLBRElement.as
> >> >HTMLButtonElement.as
> >> >HTMLCanvasElement.as
> >> >HTMLCollection.as
> >> >HTMLContentElement.as
> >> >HTMLDetailsElement.as
> >> >HTMLDialogElement.as
> >> >HTMLDirectoryElement.as
> >> >HTMLDivElement.as
> >> >HTMLDListElement.as
> >> >HTMLDocument.as
> >> >HTMLElement.as
> >> >HTMLEmbedElement.as
> >> >HTMLFieldSetElement.as
> >> >HTMLFontElement.as
> >> >HTMLFormElement.as
> >> >HTMLFrameElement.as
> >> >HTMLFrameSetElement.as
> >> >HTMLHeadElement.as
> >> >HTMLHeadingElement.as
> >> >HTMLHRElement.as
> >> >HTMLHtmlElement.as
> >> >HTMLIFrameElement.as
> >> >HTMLImageElement.as
> >> >HTMLInputElement.as
> >> >HTMLIsIndexElement.as
> >> >HTMLLabelElement.as
> >> >HTMLLegendElement.as
> >> >HTMLLIElement.as
> >> >HTMLLinkElement.as
> >> >HTMLMapElement.as
> >> >HTMLMediaElement.as
> >> >HTMLMenuElement.as
> >> >HTMLMenuItemElement.as
> >> >HTMLMetaElement.as
> >> >HTMLModElement.as
> >> >HTMLObjectElement.as
> >> >HTMLOListElement.as
> >> >HTMLOptGroupElement.as
> >> >HTMLOptionElement.as
> >> >HTMLOptionsCollection.as
> >> >HTMLParagraphElement.as
> >> >HTMLParamElement.as
> >> >HTMLPictureElement.as
> >> >HTMLPreElement.as
> >> >HTMLQuoteElement.as
> >> >HTMLScriptElement.as
> >> >HTMLSelectElement.as
> >> >HTMLShadowElement.as
> >> >HTMLSourceElement.as
> >> >HTMLStyleElement.as
> >> >HTMLTableCaptionElement.as
> >> >HTMLTableCellElement.as
> >> >HTMLTableColElement.as
> >> >HTMLTableElement.as
> >> >HTMLTableRowElement.as
> >> >HTMLTableSectionElement.as
> >> >HTMLTemplateElement.as
> >> >HTMLTextAreaElement.as
> >> >HTMLTitleElement.as
> >> >HTMLUListElement.as
> >> >HTMLVideoElement.as
> >> >Image.as
> >> >ImageData.as
> >> >KeyboardEvent.as
> >> >LinkStyle.as
> >> >MediaError.as
> >> >MediaList.as
> >> >MediaQueryList.as
> >> >MediaQueryListListener.as
> >> >MessageChannel.as
> >> >MessageEvent.as
> >> >MessagePort.as
> >> >MouseEvent.as
> >> >MSCSSMatrix.as
> >> >MutationEvent.as
> >> >MutationObserver.as
> >> >MutationRecord.as
> >> >NamedNodeMap.as
> >> >NameList.as
> >> >Node.as
> >> >NodeFilter.as
> >> >NodeIterator.as
> >> >NodeList.as
> >> >Notation.as
> >> >openDatabase.as
> >> >PageTransitionEvent.as
> >> >PopStateEvent.as
> >> >postMessage.as
> >> >ProcessingInstruction.as
> >> >ProgressEvent.as
> >> >Range.as
> >> >RangeException.as
> >> >Rect.as
> >> >RelatedEvent.as
> >> >RGBColor.as
> >> >Screen.as
> >> >ShadowRoot.as
> >> >SharedWorker.as
> >> >SharedWorkerGlobalScope.as
> >> >SQLError.as
> >> >SQLResultSet.as
> >> >SQLResultSetRowList.as
> >> >SQLTransaction.as
> >> >StyleSheet.as
> >> >StyleSheetList.as
> >> >Text.as
> >> >TextMetrics.as
> >> >TextTrack.as
> >> >TextTrackCue.as
> >> >TextTrackCueList.as
> >> >TextTrackList.as
> >> >TimeRanges.as
> >> >TreeWalker.as
> >> >TypeInfo.as
> >> >UIEvent.as
> >> >UserDataHandler.as
> >> >ValidityState.as
> >> >ViewCSS.as
> >> >VTTCue.as
> >> >WebKitCSSMatrix.as
> >> >WebSocket.as
> >> >WebWorker.as
> >> >Window.as
> >> >Worker.as
> >> >WorkerGlobalScope.as
> >> >WorkerLocation.as
> >> >XMLHttpRequestEventTarget.as
> >> >XMLHttpRequestUpload.as
> >> >
> >> >
> >> >
> >> >On Thu, Jun 4, 2015 at 3:13 PM, Michael Schmalle
> >> ><teotigraphix...@gmail.com>
> >> >wrote:
> >> >
> >> >> Yeah sorry to confuse you, the Velocity stuff doesn't matter, for
> >>that
> >> >> matter my asdoc framework I wrote doesn't(it was just showing I had
> >>all
> >> >> this working in the context of Falcon), we just need the
> >>ASDocTokenizer
> >> >>to
> >> >> tokenize the comment data given to the ASDocDelegate.
> >> >>
> >> >> Mike
> >> >>
> >> >> On Thu, Jun 4, 2015 at 3:12 PM, Michael Schmalle <
> >> >> teotigraphix...@gmail.com> wrote:
> >> >>
> >> >>> The way I did it was, I did exactly what you did, implemented the
> >> >>> ASDocDelegate and saved the tokes as it parsed all the files.
> >> >>>
> >> >>> Then I used the token String like you in the ASDocTokenizer to parse
> >> >>>the
> >> >>> loop I showed you above.
> >> >>>
> >> >>> I would add the DocTag and stuff if you can get the ASDocTokenizer
> >> >>> working like how I have it in the code above. I already wrote an API
> >> >>>for
> >> >>> easy access to the tags and comment in an ASDocCOmment class that
> >>has a
> >> >>> list of DocTags.
> >> >>>
> >> >>> Mike
> >> >>>
> >> >>> On Thu, Jun 4, 2015 at 3:09 PM, Alex Harui <aha...@adobe.com>
> wrote:
> >> >>>
> >> >>>> For this exercise though, we don’t care about the output as
> >>Velocity
> >> >>>>or
> >> >>>> XSL right?  All you want is ASDocTokens in the AST?  IIRC, in
> >>Falcon
> >> >>>>you
> >> >>>> retrieve ASDoc comments via node.getASDocComment() and get an
> >> >>>> ASDocComment
> >> >>>> instance.  Do you want the Token to be the root of a mini-tree of
> >> >>>>parsed
> >> >>>> nodes?
> >> >>>>
> >> >>>> -Alex
> >> >>>>
> >> >>>>
> >> >>>> On 6/4/15, 11:47 AM, "Michael Schmalle" <teotigraphix...@gmail.com
> >
> >> >>>> wrote:
> >> >>>>
> >> >>>> >I actually wrote a WHOLE NEW asdoc program that uses Apache
> >>Velocity
> >> >>>> >templates instead of XSL.
> >> >>>> >
> >> >>>> >That DocTag is my class.
> >> >>>> >
> >> >>>> >Mike
> >> >>>> >
> >> >>>> >On Thu, Jun 4, 2015 at 2:45 PM, Alex Harui <aha...@adobe.com>
> >>wrote:
> >> >>>> >
> >> >>>> >> I don’t see any signs of ASDoc support in flex-falcon.  I see
> >> >>>> >> ASDocTokenizer and ASDocToken, but no ASDOC.java that would be
> >> >>>> >>equivalent
> >> >>>> >> to MXMLC.java and have a main() method.  The current Flex SDK
> >>has
> >> >>>>an
> >> >>>> >> ASDoc.jar.  Shouldn’t we have these pieces? Do you have them
> >>around
> >> >>>> >> somewhere?   Otherwise I will try to quickly create them.
> >> >>>> >>
> >> >>>> >> -Alex
> >> >>>> >>
> >> >>>> >> On 6/4/15, 11:36 AM, "Michael Schmalle"
> >><teotigraphix...@gmail.com
> >> >
> >> >>>> >>wrote:
> >> >>>> >>
> >> >>>> >> >BTW, the loop always happens at the VERY end of the comment, so
> >> >>>>when
> >> >>>> >>you
> >> >>>> >> >get to the end the(the last call of next() that should return
> >> >>>>null);
> >> >>>> >> >
> >> >>>> >> >tok = tokenizer.next();
> >> >>>> >> >
> >> >>>> >> >never returns, it gets stuck trying to exit.
> >> >>>> >> >
> >> >>>> >> >Mike
> >> >>>> >> >
> >> >>>> >> >On Thu, Jun 4, 2015 at 2:34 PM, Michael Schmalle
> >> >>>> >> ><teotigraphix...@gmail.com>
> >> >>>> >> >wrote:
> >> >>>> >> >
> >> >>>> >> >> I posted about this a couple weeks ago and I tried
> >>recompiling
> >> >>>>with
> >> >>>> >> >>JFlex
> >> >>>> >> >> 1.5 I think, the older version and still had the problem.
> >> >>>> >> >>
> >> >>>> >> >> Maybe I messed up something but I tried with my same asdoc
> >>code
> >> >>>> when
> >> >>>> >>I
> >> >>>> >> >> fixed the build for the FlexJS asdocs. I wanted to see it
> >>work
> >> >>>>with
> >> >>>> >>my
> >> >>>> >> >> version of a documentor.
> >> >>>> >> >>
> >> >>>> >> >> I think IIRC, I actually tried a simple test case and it
> >>would
> >> >>>> work.
> >> >>>> >> >>
> >> >>>> >> >> I have code that uses the tokenizer;
> >> >>>> >> >>
> >> >>>> >> >>
> >> >>>> >> >>     public void compile()
> >> >>>> >> >>     {
> >> >>>> >> >>         if (token == null)
> >> >>>> >> >>             return;
> >> >>>> >> >>
> >> >>>> >> >>         String data = token.getText();
> >> >>>> >> >>         ASDocTokenizer tokenizer = new ASDocTokenizer(false);
> >> >>>> >> >>         tokenizer.setReader(new StringReader(data));
> >> >>>> >> >>         ASDocToken tok = tokenizer.next();
> >> >>>> >> >>         boolean foundDescription = false;
> >> >>>> >> >>         DocTag pendingTag = null;
> >> >>>> >> >>
> >> >>>> >> >>         try
> >> >>>> >> >>         {
> >> >>>> >> >>             while (tok != null)
> >> >>>> >> >>             {
> >> >>>> >> >>                 if (!foundDescription
> >> >>>> >> >>                         && tok.getType() ==
> >> >>>> >> >>ASTokenTypes.TOKEN_ASDOC_TEXT)
> >> >>>> >> >>                 {
> >> >>>> >> >>                     description = tok.getText();
> >> >>>> >> >>                 }
> >> >>>> >> >>                 else
> >> >>>> >> >>                 {
> >> >>>> >> >>                     // do tags
> >> >>>> >> >>                     if (tok.getType() ==
> >> >>>> >>ASTokenTypes.TOKEN_ASDOC_TAG)
> >> >>>> >> >>                     {
> >> >>>> >> >>                         if (pendingTag != null)
> >> >>>> >> >>                         {
> >> >>>> >> >>                             addTag(pendingTag);
> >> >>>> >> >>                             pendingTag = null;
> >> >>>> >> >>                         }
> >> >>>> >> >>                         pendingTag = new
> >> >>>> >> >> DocTag(tok.getText().substring(1));
> >> >>>> >> >>                     }
> >> >>>> >> >>                     else if (tok.getType() ==
> >> >>>> >> >> ASTokenTypes.TOKEN_ASDOC_TEXT)
> >> >>>> >> >>                     {
> >> >>>> >> >>
> >> >>>>pendingTag.setDescription(tok.getText());
> >> >>>> >> >>                         addTag(pendingTag);
> >> >>>> >> >>                         pendingTag = null;
> >> >>>> >> >>                     }
> >> >>>> >> >>                 }
> >> >>>> >> >>
> >> >>>> >> >>                 foundDescription = true;
> >> >>>> >> >>
> >> >>>> >> >>                 tok = tokenizer.next();
> >> >>>> >> >>             }
> >> >>>> >> >>         }
> >> >>>> >> >>         catch (Exception e)
> >> >>>> >> >>         {
> >> >>>> >> >>             e.printStackTrace();
> >> >>>> >> >>         }
> >> >>>> >> >>     }
> >> >>>> >> >>
> >> >>>> >> >> Mike
> >> >>>> >> >>
> >> >>>> >> >>
> >> >>>> >> >> On Thu, Jun 4, 2015 at 2:30 PM, Alex Harui <aha...@adobe.com
> >
> >> >>>> wrote:
> >> >>>> >> >>
> >> >>>> >> >>>
> >> >>>> >> >>>
> >> >>>> >> >>> On 6/4/15, 11:23 AM, "Michael Schmalle" <
> >> >>>> teotigraphix...@gmail.com>
> >> >>>> >> >>> wrote:
> >> >>>> >> >>> >>Hmm.  Maybe I should spend some time looking into fixing
> >> >>>> >> >>>ASDocTokenizer?
> >> >>>> >> >>> >> Was the problem that it didn’t work on every AS file we
> >> >>>>current
> >> >>>> >> >>>have?
> >> >>>> >> >>> >>
> >> >>>> >> >>> >
> >> >>>> >> >>> >
> >> >>>> >> >>> >It doesn't work on anything, there is an infinite loop in
> >>the
> >> >>>> >>scanner
> >> >>>> >> >>> that
> >> >>>> >> >>> >is created by JFlex, the RawASDocTokenizer is broken.
> >> >>>> >> >>> >
> >> >>>> >> >>> >What is weird is I was using the SAME code base when I
> >>wrote
> >> >>>>the
> >> >>>> >>asdoc
> >> >>>> >> >>> >documenter I have 2 years ago and it worked fine.
> >> >>>> >> >>>
> >> >>>> >> >>> We upgraded the version of JFlex, IIRC.  I’ll take a look.
> >> >>>>What
> >> >>>> >>setup
> >> >>>> >> >>>did
> >> >>>> >> >>> you have for trying it?  Did you run it on the Flex SDK or
> >> >>>>FlexJS
> >> >>>> >>SDK
> >> >>>> >> >>>or
> >> >>>> >> >>> did it even loop on a simple test case?
> >> >>>> >> >>>
> >> >>>> >> >>> -Alex
> >> >>>> >> >>>
> >> >>>> >> >>>
> >> >>>> >> >>
> >> >>>> >>
> >> >>>> >>
> >> >>>>
> >> >>>>
> >> >>>
> >> >>
> >>
> >>
>
>

Reply via email to