Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
SoN9ne
Visitor

Re: New Eclipse Plugin Release 1/7/2014

I just installed this today. Eclipse is a horrible editor but I wanted to give it another go as this plugin seems very useful.

I installed Eclipse and installed this plugin. I seem to be having a lot of issues and most I worked out but I do get a lot of random errors but I can deal with this as I assume development is ongoing.

My reason for this post is an error I get when running Localization (by right-clicking on the file and selecting localization. Also by selecting the project and selecting localization)

The error I receive is:
java.lang.IllegalArgumentException: No enum constant com.roku.brightscript.ide.eclipse.core.BrightScriptManifest.BrightScriptManifestPropertyName.'
at java.lang.Enum.valueOf(Unknown Source)
at com.roku.brightscript.ide.eclipse.core.BrightScriptManifest$BrightScriptManifestPropertyName.valueOf(BrightScriptManifest.java:1)
at com.roku.brightscript.ide.eclipse.core.BrightScriptManifest.getSourceVals(BrightScriptManifest.java:452)
at com.roku.brightscript.ide.eclipse.core.BrightScriptManifest.getLocalizedSourceValsFromMainManifest(BrightScriptManifest.java:208)
at com.roku.brightscript.ide.eclipse.core.actions.BrightScriptTranslationsAction.run(BrightScriptTranslationsAction.java:28)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)


Now to help isolate this. I do not have an option set to auto translate (could that be the issue?) I was assuming that localization would generate the XML files and I could then do the translations by giving them to actual translators instead of using a service.

I did follow the guide and installed DLTK 2.0. The plugin works for the most part but has many issues. The export to Roku seems flawless but the manifest editor throws errors on none error values (like spash_color not being a hex value although it is) one issue that should be noted is that if you use the manifest editor it will recreate the file. All comments will be omitted.

Window 7 Professional 64-bit
Eclipse Standard/SDK
Version: Kepler Service Release 2
Build id: 20140224-0627

Thanks for any help on this.
0 Kudos
malloys
Visitor

Re: New Eclipse Plugin Release 1/7/2014

"SoN9ne" wrote:


My reason for this post is an error I get when running Localization (by right-clicking on the file and selecting localization. Also by selecting the project and selecting localization)

The error I receive is:
java.lang.IllegalArgumentException: No enum constant com.roku.brightscript.ide.eclipse.core.BrightScriptManifest.BrightScriptManifestPropertyName.'
at java.lang.Enum.valueOf(Unknown Source)
at com.roku.brightscript.ide.eclipse.core.BrightScriptManifest$BrightScriptManifestPropertyName.valueOf(BrightScriptManifest.java:1)
at com.roku.brightscript.ide.eclipse.core.BrightScriptManifest.getSourceVals(BrightScriptManifest.java:452)
at com.roku.brightscript.ide.eclipse.core.BrightScriptManifest.getLocalizedSourceValsFromMainManifest(BrightScriptManifest.java:208)
at com.roku.brightscript.ide.eclipse.core.actions.BrightScriptTranslationsAction.run(BrightScriptTranslationsAction.java:28)
<snip/>


Now to help isolate this. I do not have an option set to auto translate (could that be the issue?) I was assuming that localization would generate the XML files and I could then do the translations by giving them to actual translators instead of using a service.


Auto-translate is not required - precisely because of the use-case you are stating.

The stacktrace indicates that you've got what the plugin currently considers to be an invalid main manifest file (and that I need to improve the manifest processor's error handling).
If you could provide the manifest file in question, I can track down the issue.
However, I'm guessing by the stacktrace that you are using the single quote character to prefix comment lines in the main manifest - this is allowed/correct for .brs files, but not manifest files.

The plugin unofficially allows comment lines in the manifest that begin with "#" or "!" (AFIK, the SDK docs don't mention any support for comments in the manifest file, so this may go away or change in the future).

"SoN9ne" wrote:

The export to Roku seems flawless but the manifest editor throws errors on none error values (like spash_color not being a hex value although it is)


Again, If you could provide the manifest file in question, I can track down the issues.
For the splash_color value, you need to be sure you've prefixed the value with "#", otherwise it's invalid.
Using the color picker button to the right of the field in the manifest editor to choose colors will show you the correct format.

FWIW... I've just discovered that if you manually enter the splash_color in an incorrect format once, it will subsequently fail to save even if you correct the value in the manifest editor.
You may be running into that bug (which I'm about to file). If so, here's a temporary workaround:
1) set the splash_color field value to empty.
2) save the manifest. (should work now w/o errors)
3) enter the correctly formatted splash_color field value.
4) re-save.

"SoN9ne" wrote:

one issue that should be noted is that if you use the manifest editor it will recreate the file. All comments will be omitted.


Yep, that behavior (comments are not preserved across edits via the manfest editor's overview tab, or generated localized manifests) was stated a long time ago in a thread on this forum , but unfortunately the thread that it was stated in was removed and replaced by this thread.
That behavior probably should be noted in the plugin guide, but isn't. I'll ping the doc maintainer to add that in for the next release of the plugin.

Cheers
0 Kudos
SoN9ne
Visitor

Re: New Eclipse Plugin Release 1/7/2014

"malloys" wrote:

Auto-translate is not required - precisely because of the use-case you are stating.

The stacktrace indicates that you've got what the plugin currently considers to be an invalid main manifest file (and that I need to improve the manifest processor's error handling).
If you could provide the manifest file in question, I can track down the issue.
However, I'm guessing by the stacktrace that you are using the single quote character to prefix comment lines in the main manifest - this is allowed/correct for .brs files, but not manifest files.

The plugin unofficially allows comment lines in the manifest that begin with "#" or "!" (AFIK, the SDK docs don't mention any support for comments in the manifest file, so this may go away or change in the future).


This was my issue. I am using the comments as
' My Comment
by removing the comments I was able to generate the translation.xml files. Thanks a lot for that 🙂

"malloys" wrote:

Again, If you could provide the manifest file in question, I can track down the issues.
For the splash_color value, you need to be sure you've prefixed the value with "#", otherwise it's invalid.
Using the color picker button to the right of the field in the manifest editor to choose colors will show you the correct format.

FWIW... I've just discovered that if you manually enter the splash_color in an incorrect format once, it will subsequently fail to save even if you correct the value in the manifest editor.
You may be running into that bug (which I'm about to file). If so, here's a temporary workaround:
1) set the splash_color field value to empty.
2) save the manifest. (should work now w/o errors)
3) enter the correctly formatted splash_color field value.
4) re-save.


Thanks, I actually figure out the work-a-round later in the evening to get that working. I originally set the value omitting the # and that caused the issue.

"malloys" wrote:

Yep, that behavior (comments are not preserved across edits via the manfest editor's overview tab, or generated localized manifests) was stated a long time ago in a thread on this forum , but unfortunately the thread that it was stated in was removed and replaced by this thread.
That behavior probably should be noted in the plugin guide, but isn't. I'll ping the doc maintainer to add that in for the next release of the plugin.

Cheers


Understood. I just started Roku development 2 days ago so I have a bit to learn.

Below is my manifest file with comments. This is not the exact one throwing the error as it has been changed but it throws the same exceptions.
' Channel Details
title=blankTemplate
subtitle=Blank template to be used as a foundation for development

' Channel Version
major_version=1
minor_version=0
build_version=0

' Channel Branding
mm_icon_focus_hd=pkg:/locale/default/images/icon_focus_hd.png
mm_icon_side_hd=pkg:/locale/default/images/icon_side_hd.png
mm_icon_focus_sd=pkg:/locale/default/images/icon_focus_sd.png
mm_icon_side_sd=pkg:/locale/default/images/icon_side_sd.png

' Channel Splash Screen
splash_screen_sd=pkg:/locale/default/images/splash_page_sd.png
splash_screen_hd=pkg:/locale/default/images/splash_page_hd.png
splash_color=#000000
splash_min_time=1600


I am currently in the process of learning Roku development and am commenting my "blankTemplate" to be used with other developers that have no experience. Hence my reason for wanting to comment everything. Removing comments from the manifest isn't really an issue. I just wanted you to understand my reasoning for using comments on simple items.

Thanks for this great plugin. 😄

One feature request, if possible, would be to allow the plugin to use Eclipse themes. Maybe it's just be but I use a dark theme for Eclipse and it doesn't seem to apply any styling to the BrightScript code. Perhaps I am missing something here?

Also, when you delete a file then select update existing translations it doesn't remove deleted files from the translations.xml
0 Kudos
EnTerr
Roku Guru

Re: New Eclipse Plugin Release 1/7/2014

"malloys" wrote:
The plugin unofficially allows comment lines in the manifest that begin with "#" or "!" (AFIK, the SDK docs don't mention any support for comments in the manifest file, so this may go away or change in the future).

Malloys - seems to me both problems (plugin crashing and comments "lost in translation") will be solved if you drop the invented comments support. Roku likely does not look for any but instead always parses lines on first "=". Meaning that given this:

' someKey1=something something
#someKey2=something=else
;someKey3 =42
! someKey4=
' someKey5=
player would assume the keys are ' someKey1, #someKey2, ;someKey3 , ! someKey4, ' someKey5 - which won't hurt it at the least since it does not look for such keys in the dictionary where manifest is mapped to. Parser may or may not trim spaces around a key, i won't bet either way.

It's ironic twist but this demonstrates doing less can accomplish more. Un-inventing comments will prevent crashy/strange behavior.

PS. comments starting with "!"... where? Only place i can find is Fortran :shock:
Traditionally in .INI files (which i think Roku registries are based on) comments start with ";"
0 Kudos
malloys
Visitor

Re: New Eclipse Plugin Release 1/7/2014

"SoN9ne" wrote:

This was my issue. I am using the comments as
' My Comment
by removing the comments I was able to generate the translation.xml files. Thanks a lot for that 🙂


Sure thing.
Sorry the plugin wasn't catching this potential issue and displaying a clear error message - I'll be filing a bug on that today so that the fix can prevent others from being tripped up by this.

"SoN9ne" wrote:

"malloys" wrote:

FWIW... I've just discovered that if you manually enter the splash_color in an incorrect format once, it will subsequently fail to save even if you correct the value in the manifest editor.
You may be running into that bug (which I'm about to file). If so, here's a temporary workaround:
...
<snip/>


Thanks, I actually figure out the work-a-round later in the evening to get that working. I originally set the value omitting the # and that caused the issue.


Good to know.
FYI, I filed the bug on that issue yesterday, but you now confirming the issue will allow me to note that in the bug entry and increase the likelyhood of it being approved to be worked on.


"SoN9ne" wrote:

Thanks for this great plugin. 😄


Thanks, glad you like it.
BTW, please continue to post here about bugs you'd like fixed and enhancement requests you'd like to see implemented.
From my own use and observations, I can file these kinds of things all day long... but they're more likely to be approved by my Roku overlords to be worked on if devs such as yourself explicitly request it.


"SoN9ne" wrote:

One feature request, if possible, would be to allow the plugin to use Eclipse themes. Maybe it's just be but I use a dark theme for Eclipse and it doesn't seem to apply any styling to the BrightScript code. Perhaps I am missing something here?


I'd have to do some research into this, since support for eclipse themes has never come up before, but it should be possible.

What themes-related plugins are you using (beside the theme itself) if any?...
There are several out there that extend the new (as of the eclipse 4.0 line) CSS-based standard approach in unusual ways.
Pre 4.0, the mechanism for themes was different, but those mechanisms are still in-use despite the new CSS way of doing things, so you and others may be using one of those.

Aside from the technical details...
How important is this for you?
Open question to other BrightScript plugin users: is this something you'd like to see as well?

"SoN9ne" wrote:

Also, when you delete a file then select update existing translations it doesn't remove deleted files from the translations.xml


Thanks for the heads up.
It's been a while since I was in that code, but I thought I had that case covered.
I'll check into it and get back to you.

Cheers
0 Kudos
SoN9ne
Visitor

Re: New Eclipse Plugin Release 1/7/2014

"malloys" wrote:

I'd have to do some research into this, since support for eclipse themes has never come up before, but it should be possible.

What themes-related plugins are you using (beside the theme itself) if any?...
There are several out there that extend the new (as of the eclipse 4.0 line) CSS-based standard approach in unusual ways.
Pre 4.0, the mechanism for themes was different, but those mechanisms are still in-use despite the new CSS way of doing things, so you and others may be using one of those.


I am using the Moonrise Theme

Here is a list of everything installed in Eclipse
  BrightScript Core	1.0.0.201312131456	com.roku.brightscript.ide.eclipse.core.feature.group	Roku Inc.
Dynamic Languages Toolkit - Core Frameworks 2.0.0.v20100518-1923-7L--EAAoOVMSMc4AWEvJ org.eclipse.dltk.core.feature.group Eclipse.org
Dynamic Languages Toolkit - Core Frameworks SDK 2.0.0.v20090730-1127-5--90U45SFRujYToYq6KvGxbBBpP org.eclipse.dltk.core.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - Core H2 Index Frameworks 2.0.0.v20100616-2015-6--9oA5855M7O2968L org.eclipse.dltk.core.index.feature.group Eclipse.org
Dynamic Languages Toolkit - Core H2 Index Frameworks SDK 2.0.0.v20090917-1539-4--8342CrDDBD7R_S_AE_N_pB696 org.eclipse.dltk.core.index.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - iTcl Development Tools 2.0.0.v20100603-4--9oA57D5F9H29D9E org.eclipse.dltk.itcl.feature.group Eclipse.org
Dynamic Languages Toolkit - iTcl Development Tools SDK 2.0.0.v20090730-1127-4--8142CrDD_J7MAJDz0RGOE6G_I org.eclipse.dltk.itcl.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - Javascript IDE 2.0.0.v20100118-1339-7J--E_EkMWeN5avAaJuT org.eclipse.dltk.javascript.feature.group Eclipse.org
Dynamic Languages Toolkit - Javascript IDE SDK 2.0.0.v20090730-1412-4--84O23HCIoXYiTAmxKxLwlAFlN org.eclipse.dltk.javascript.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - Mylyn Integration 1.0.0.v20100518-1923-2--7w3121163103314 org.eclipse.dltk.mylyn.feature.group Eclipse.org
Dynamic Languages Toolkit - Mylyn Integration SDK 1.0.0.v20090730-1311-2--8-42Az-696B3_E6658368x423 org.eclipse.dltk.mylyn.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - Python IDE 2.0.0.v20090730-1514-77--BcMACkBgGa3CKHQ org.eclipse.dltk.python.feature.group Eclipse.org
Dynamic Languages Toolkit - Python IDE SDK 2.0.0.v20090730-1514-4--84B22NfWGFmFoKh5MUJSCdNBD org.eclipse.dltk.python.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - Remote Development Support 2.0.0.v20100603-5--9oA5855C8K2A98F org.eclipse.dltk.rse.feature.group Eclipse.org
Dynamic Languages Toolkit - Remote Development Support SDK 2.0.0.v20090730-1127-4--8242CrDDAA7K_ME0MFQ66D9L3 org.eclipse.dltk.rse.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - Ruby Development Tools 2.0.0.v20100505-1154-7G--E_EkMU3NHhvAUo0G org.eclipse.dltk.ruby.feature.group Eclipse.org
Dynamic Languages Toolkit - Ruby Development Tools SDK 2.0.0.v20090730-1127-4--84L23HCMnUW7RPoxKoq2YAFlN org.eclipse.dltk.ruby.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - TCL Development Tools 2.0.0.v20100505-1154-7L0-EC3wSZiWSqREkvtZ org.eclipse.dltk.tcl.feature.group Eclipse.org
Dynamic Languages Toolkit - TCL Development Tools SDK 2.0.0.v20090730-1127-4--84Q33HFAz-abmaaxTP7yvrD4x org.eclipse.dltk.tcl.sdk.feature.group Eclipse.org
Dynamic Languages Toolkit - XOTcl Development Tools 2.0.0.v20100603-5--_kE79O7ODJ3BGCN org.eclipse.dltk.xotcl.feature.group Eclipse.org
Dynamic Languages Toolkit - XOTcl Development Tools SDK 2.0.0.v20090730-1127-4--8242DnHFBU9WFLFz-YMZP8PEK org.eclipse.dltk.xotcl.sdk.feature.group Eclipse.org
Eclipse Color Theme 0.13.0.201311210852 com.github.eclipsecolortheme.feature.feature.group GitHub
Eclipse Moonrise UI Theme 0.8.9.201404052318 com.github.eclipseuitheme.themes.feature.feature.group Andrea Guarinoni
Eclipse Standard/SDK 2.0.2.20140224-0000 epp.package.standard null
Eclipse XML Editors and Tools 3.5.2.v201401062113-7H7IFizDxumVu0K6bjdPjXRkoz0FiUYMnSyT9PL org.eclipse.wst.xml_ui.feature.feature.group Eclipse Web Tools Platform


"malloys" wrote:

Aside from the technical details...
How important is this for you?
Open question to other BrightScript plugin users: is this something you'd like to see as well?


It's not a huge deal for me as I only use Eclipse for Roku Development. I prefer a dark theme and I cannot use one while I work with BrightScript as the font stays black (on a black background) Basically, I cannot change any colors for the BrightScript language so it's defaulted to the plugin settings (assumption).

"malloys" wrote:

"SoN9ne" wrote:

Also, when you delete a file then select update existing translations it doesn't remove deleted files from the translations.xml


Thanks for the heads up.
It's been a while since I was in that code, but I thought I had that case covered.
I'll check into it and get back to you.

Cheers


I also ran into an issue where I updated the translations again and it added two records with the same id and messed up the indentions a little. This threw some errors in the console but was easily fixed.

Also, when I have errors in my code logic and I export to Roku, I get a compile error in the console but it disappears before I can read it (once the export is "complete"). Not sure if this is plugin behavior or not but just wanted to let you know.

Thanks again for your prompt replies and dedication to this plugin
0 Kudos
malloys
Visitor

Re: New Eclipse Plugin Release 1/7/2014

"EnTerr" wrote:
"malloys" wrote:
The plugin unofficially allows comment lines in the manifest that begin with "#" or "!" (AFIK, the SDK docs don't mention any support for comments in the manifest file, so this may go away or change in the future).

Malloys - seems to me both problems (plugin crashing and comments "lost in translation") will be solved if you drop the invented comments support.


Not correct.
The bug and the comments support are 2 entirely different issues, that just happened to coincidentally overlap in this specific example manifest.
The bug actually has to do with how attribute names are matched to validation routines - there's an implicit limitation in the current code that attribute names can only be valid identifiers (and specifically Java identifiers). The fix is easy, but it's additional code, and has nothing directly to do with comments.

"EnTerr" wrote:

It's ironic twist but this demonstrates doing less can accomplish more. Un-inventing comments will prevent crashy/strange behavior.


Meta-ironically.... no 🙂

I have to write more code, not remove code, to fix the bug... and separately, I also have to write more code to support the persistence of non-attrib/val lines, line ordering preservation, etc...
"Un-inventing comments" would also require writing more code (since it's not mine, I'd have to re-invent the base class, sans comment support) and in the end wouldn't solve any of the issues mentioned.

All of the current behavior is due to currently basing the implementation on 2 standard Java library classes that contain certain restrictions and limitations (by design in Java).
Those standard library classes allowed me to write a lot less code and get the manifest functionality in the plugin faster, but at the cost of a few edge-case bugs (since BrightScript manifest files are more permissive in their format).
But... there's been enough evidence now that this was a penny-wise, pound foolish approach. I'm probably going to file an enhancement request or 2 today to bring the manifest code in-line with firmware parsing (i.e. line persistence/ignoring during parse for non-attribute lines, line ordering preservation for all lines, etc.).

"EnTerr" wrote:

PS. comments starting with "!"... where? Only place i can find is Fortran :shock:


Java properties files ( hence, of one of the standard Java lib classes mentioned above ).

Cheers
0 Kudos
NewManLiving
Visitor

Re: New Eclipse Plugin Release 1/7/2014

Any Release notes on Build 1.0.0.201406201331
Really like the new ability to open and edit files containing errors (at line-number) right from the debug console
My Channels: 2D API Framework Presentation: https://owner.roku.com/add/2M9LCVC
Updated: 11-11-2015 - Completed Keyboard interface
The Joel Channel ( Final Beta )
0 Kudos
dcrandall
Visitor

Re: New Eclipse Plugin Release 1/7/2014

Any clue on this one? I'm using indigo with Java 8 version 5 (build 1.8.0_05-b13)

This was the line that caused it:

propstring = "prop".trim() + (stri(i)).trim()


Which, on further dissection

"prop".trim()


Seemed to be the issue.

It compiles and runs like a charm though.

java.lang.NullPointerException
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptDotExpression.toString(BrightScriptDotExpression.java:284)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptDotExpression.getStringRepresentation(BrightScriptDotExpression.java:268)
at com.roku.brightscript.ide.eclipse.core.model.ast.BrightScriptASTTranslator.processFnCallFnRefOrVarRef(BrightScriptASTTranslator.java:2267)
at com.roku.brightscript.ide.eclipse.core.model.ast.BrightScriptASTTranslator.exitFnexprtail(BrightScriptASTTranslator.java:2178)
at com.roku.brightscript.parser.BrightScriptAnalyzer.exit(BrightScriptAnalyzer.java:1329)
at net.percederberg.grammatica.parser.Parser.exitNode(Parser.java:540)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:300)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:267)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseElement(RecursiveDescentParser.java:333)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseAlternative(RecursiveDescentParser.java:298)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parsePattern(RecursiveDescentParser.java:218)
at net.percederberg.grammatica.parser.RecursiveDescentParser.parseStart(RecursiveDescentParser.java:177)
at net.percederberg.grammatica.parser.Parser.parse(Parser.java:389)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceParser.parse(BrightScriptSourceParser.java:79)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.parseSourceModule(BrightScriptSourceElementParser.java:75)
at org.eclipse.dltk.internal.core.AbstractSourceModule.buildStructure(AbstractSourceModule.java:507)
at org.eclipse.dltk.internal.core.Openable.generateInfos(Openable.java:188)
at org.eclipse.dltk.internal.core.ModelElement.openWhenClosed(ModelElement.java:184)
at org.eclipse.dltk.internal.core.ModelElement.getElementInfo(ModelElement.java:171)
at org.eclipse.dltk.internal.core.ModelElement.getChildren(ModelElement.java:356)
at org.eclipse.dltk.internal.core.ModelElement.getChildren(ModelElement.java:351)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:727)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at com.roku.brightscript.ide.eclipse.core.model.BrightScriptModelUtils.findModelElementByScopeAndTypeAndName(BrightScriptModelUtils.java:694)
at com.roku.brightscript.ide.eclipse.core.model.BrightScriptModelUtils.getUserMethodByName(BrightScriptModelUtils.java:522)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptProgramMethodDeclaration.getBsMethod(BrightScriptProgramMethodDeclaration.java:110)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptProgramMethodCallExpression.getBsMethod(BrightScriptProgramMethodCallExpression.java:52)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.processMethods(BrightScriptSourceElementParser.java:276)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.parseSourceModule(BrightScriptSourceElementParser.java:112)
at org.eclipse.dltk.internal.core.AbstractSourceModule.buildStructure(AbstractSourceModule.java:507)
at org.eclipse.dltk.internal.core.Openable.generateInfos(Openable.java:188)
at org.eclipse.dltk.internal.core.ModelElement.openWhenClosed(ModelElement.java:184)
at org.eclipse.dltk.internal.core.ModelElement.getElementInfo(ModelElement.java:171)
at org.eclipse.dltk.internal.core.ModelElement.getChildren(ModelElement.java:356)
at org.eclipse.dltk.internal.core.ModelElement.getChildren(ModelElement.java:351)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:727)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at com.roku.brightscript.ide.eclipse.core.model.BrightScriptModelUtils.findModelElementByScopeAndTypeAndName(BrightScriptModelUtils.java:694)
at com.roku.brightscript.ide.eclipse.core.model.BrightScriptModelUtils.getUserMethodByName(BrightScriptModelUtils.java:522)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptProgramMethodDeclaration.getBsMethod(BrightScriptProgramMethodDeclaration.java:110)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptProgramMethodReference.getBsMethod(BrightScriptProgramMethodReference.java:51)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.processMethods(BrightScriptSourceElementParser.java:315)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.parseSourceModule(BrightScriptSourceElementParser.java:112)
at org.eclipse.dltk.internal.core.AbstractSourceModule.buildStructure(AbstractSourceModule.java:507)
at org.eclipse.dltk.internal.core.Openable.generateInfos(Openable.java:188)
at org.eclipse.dltk.internal.core.ModelElement.openWhenClosed(ModelElement.java:184)
at org.eclipse.dltk.internal.core.ModelElement.getElementInfo(ModelElement.java:171)
at org.eclipse.dltk.internal.core.ModelElement.getChildren(ModelElement.java:356)
at org.eclipse.dltk.internal.core.ModelElement.getChildren(ModelElement.java:351)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:727)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at org.eclipse.dltk.internal.core.ModelElement.accept(ModelElement.java:729)
at com.roku.brightscript.ide.eclipse.core.model.BrightScriptModelUtils.findModelElementByScopeAndTypeAndName(BrightScriptModelUtils.java:694)
at com.roku.brightscript.ide.eclipse.core.model.BrightScriptModelUtils.getUserMethodByName(BrightScriptModelUtils.java:522)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptProgramMethodDeclaration.getBsMethod(BrightScriptProgramMethodDeclaration.java:110)
at com.roku.brightscript.ide.eclipse.core.model.ast.typedexpressions.BrightScriptProgramMethodCallExpression.getBsMethod(BrightScriptProgramMethodCallExpression.java:52)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.processMethods(BrightScriptSourceElementParser.java:276)
at com.roku.brightscript.ide.eclipse.core.model.parsers.BrightScriptSourceElementParser.parseSourceModule(BrightScriptSourceElementParser.java:112)
at org.eclipse.dltk.internal.core.AbstractSourceModule.buildStructure(AbstractSourceModule.java:507)
at org.eclipse.dltk.internal.core.Openable.generateInfos(Openable.java:188)
at org.eclipse.dltk.internal.core.ModelElement.openWhenClosed(ModelElement.java:184)
at org.eclipse.dltk.internal.core.BecomeWorkingCopyOperation.executeOperation(BecomeWorkingCopyOperation.java:45)
at org.eclipse.dltk.internal.core.ModelOperation.run(ModelOperation.java:698)
at org.eclipse.dltk.internal.core.ModelOperation.runOperation(ModelOperation.java:764)
at org.eclipse.dltk.internal.core.SourceModule.becomeWorkingCopy(SourceModule.java:68)
at org.eclipse.dltk.internal.ui.editor.SourceModuleDocumentProvider.createFileInfo(SourceModuleDocumentProvider.java:1254)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.connect(TextFileDocumentProvider.java:478)
at org.eclipse.dltk.internal.ui.editor.SourceModuleDocumentProvider.connect(SourceModuleDocumentProvider.java:1487)
at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4213)
at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)
at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1451)
at org.eclipse.dltk.internal.ui.editor.ScriptEditor.internalDoSetInput(ScriptEditor.java:799)
at org.eclipse.dltk.internal.ui.editor.ScriptEditor.doSetInput(ScriptEditor.java:1276)
at com.roku.brightscript.ide.eclipse.core.editors.brs.BrightScriptEditor.doSetInput(BrightScriptEditor.java:53)
at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3200)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2649)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3218)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3245)
at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:828)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1245)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1198)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1597)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:493)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:479)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112)
at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63)
at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225)
at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213)
at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:808)
at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:707)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:666)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2942)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2764)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:355)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:164)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:249)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:251)
at org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(OpenAndExpand.java:50)
at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.java:221)
at org.eclipse.ui.navigator.CommonNavigatorManager$3.open(CommonNavigatorManager.java:185)
at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:866)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:864)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1152)
at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewer.java:462)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1256)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:269)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:309)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
0 Kudos
malloys
Visitor

Re: New Eclipse Plugin Release 1/7/2014

"dcrandall" wrote:
Any clue on this one? I'm using indigo with Java 8 version 5 (build 1.8.0_05-b13)

This was the line that caused it:

propstring = "prop".trim() + (stri(i)).trim()


Which, on further dissection

"prop".trim()


Seemed to be the issue.

It compiles and runs like a charm though.


That's an issue with the parser (literal expression as the head of a "dot expression") that was discovered and fixed several weeks ago.
It'll be in the next published version of the plugin (whenever RokuRobB can find the time to publish it).

cheers
0 Kudos