You da man! We’ll see how well I do with the ASDoc lexer. I am set up to debug it now.
-Alex On 6/4/15, 2:21 PM, "Michael Schmalle" <teotigraphix...@gmail.com> wrote: >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 >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> >> >> >>>> >> >> >>> >> >> >> >> >> >> >> >> >>