Agreed! Great stuff, Mike.

- Josh

On Thu, Jun 4, 2015 at 2: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