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 > >> >>>> >> >>> > >> >>>> >> >>> > >> >>>> >> >> > >> >>>> >> > >> >>>> >> > >> >>>> > >> >>>> > >> >>> > >> >> > >> > >> > >