I get a parser error thrown bwhen I make an array with a trailing comma
after the last element, like

        var forceload =  [LzText,
                          // LzInputText.
                          LzView,
                          LzNode,
                          LzAnimator,
                          LzAnimatorGroup,
                          LzLayout,
                          LzScript,

                          ];

I thought this was legal in JS, or maybe that's Python I'm thinking of?

     [echo] Compiling
C:\users\hqm\openlaszlo\devildog/lps/includes/lfc/LFC9.lzl
     [java] No prec for ASTEmptyExpression in
     [java] org.openlaszlo.sc.CompilerException
     [java]     at org.openlaszlo.sc.ParseTreePrinter.maybeAddParens(
ParseTreePrinter.java:624)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visitArrayLiteral(
ParseTreePrinter.java:569)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:279)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.makeTranslationUnits(
ParseTreePrinter.java:833)
     [java]     at org.openlaszlo.sc.SWF9Generator.makeTranslationUnits(
SWF9Generator.java:743)
     [java]     at org.openlaszlo.sc.Compiler.compile(Compiler.java:349)
     [java]     at org.openlaszlo.sc.lzsc.compile(lzsc.java:110)
     [java]     at org.openlaszlo.sc.lzsc.compile(lzsc.java:322)
     [java]     at org.openlaszlo.sc.Main.main(Main.java:10)
     [java] No prec for ASTEmptyExpression in
     [java] org.openlaszlo.sc.CompilerException
     [java]     at org.openlaszlo.sc.ParseTreePrinter.maybeAddParens(
ParseTreePrinter.java:624)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visitArrayLiteral(
ParseTreePrinter.java:569)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:279)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)
     [java]     at org.openlaszlo.sc.ParseTreePrinter.visit(
ParseTreePrinter.java:160)


On Jan 9, 2008 10:35 AM, Henry Minsky <[EMAIL PROTECTED]> wrote:

> I guess I can have a statement at the start of the LzApplication main
> class, that just makes a list of all the
> LFC classes that have LZX tag names, and that will force them to be
> loaded.
>
>
> On Jan 9, 2008 10:33 AM, Henry Minsky <[EMAIL PROTECTED]> wrote:
>
> > Interesting... LzNode looks at the ConstructorMap *before* it creates an
> > LzText, so that would
> > explain why it isn't there  yet. Given this behavior, anyone have any
> > suggestions as to how to build
> > the constructormap table in the distributed way we're doing it
> > currently?.
> >
> > For now, I'm just going to hardcode the whole table  into the Laszlo
> > application startup class I'm building.
> >
> >
> >
> >
> > On Jan 9, 2008 10:29 AM, Donald Anderson < [EMAIL PROTECTED]> wrote:
> >
> > > Henry,
> > > At the time you have looked at ConstructorMap, have you
> > > already created a LzText object?  If not, maybe it's doing
> > > lazy creation of the classes - I know that Java does this -
> > > static initializers and blocks don't occur until the class is
> > > loaded, and a class may not be loaded until some code executes
> > > that either creates an object of that type or references a static
> > > method/var.
> > >
> > > On Jan 9, 2008, at 9:59 AM, Henry Minsky wrote:
> > >
> > >
> > > In one of the LFC files I declare a global
> > >
> > > var ConstructorMap = {};
> > >
> > > which gets turned into it's own declaration  file by the script
> > > compiler
> > >
> > > ConstructorMap.as:
> > >
> > > package {
> > >   public var ConstructorMap = {};
> > > }
> > >
> > >
> > > In each LFC file I have a statement to add a tag to this global
> > >
> > >
> > > dynamic class LzView extends LzNode {
> > >     static var tagname = 'view';
> > >     ConstructorMap[tagname] = LzView;
> > >
> > >
> > > dynamic class LzAnimator extends LzAnimatorGroup {
> > >   static var tagname = 'animator';
> > >   ConstructorMap[tagname] = LzAnimator;
> > >
> > >
> > > dynamic class LzText extends LzView  {
> > >     static var tagname = 'text';
> > >     ConstructorMap[tagname] = LzText;
> > >
> > > But when the system is running, there is no entry in
> > > ConstructorMap['text'], in fact
> > > the only entries in the ConstructorMap are
> > >
> > >   view: [class LzView], node: [class LzNode], canvas: [class
> > > LzCanvas],
> > >
> > > missing are animator, layout, animatorgroup, text
> > >
> > > So I'm wondering is there some arbitrary ordering issue where some of
> > > the
> > > classes are executing the "ConstructorMap[foo] = bar" before
> > > ConstructorMap
> > > actually gets initialized, and silently failing, or what? I can't
> > > figure
> > > out if this is a compiler bug in Flex or if I'm doing something
> > > wrong.  According to
> > > the AS3 docs, statements at the top level of a class declaration get
> > > executed once
> > > when the class is defined. But I am wondering how that interacts with
> > > global var initializations,
> > > maybe the order is arbitrary?
> > >
> > >
> > >
> > >
> > >
> > > --
> > > Henry Minsky
> > > Software Architect
> > > [EMAIL PROTECTED]
> > >
> > >
> > >
> > > --
> > >
> > > Don Anderson
> > > Java/C/C++, Berkeley DB, systems consultant
> > >
> > > voice: 617-547-7881
> > > email:  [EMAIL PROTECTED]
> > > www: http://www.ddanderson.com
> > >
> > >
> > >
> > >
> > >
> >
> >
> > --
> > Henry Minsky
> > Software Architect
> > [EMAIL PROTECTED]
> >
> >
>
>
> --
> Henry Minsky
> Software Architect
> [EMAIL PROTECTED]
>
>


-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to