Sorry you right i skipped this step a bit: What i do is:
5.a- change: public static class SJParserResult extends Result { => public static class SJParserResult extends org.netbeans.modules.csl.spi.ParserResult { 5.b- org.netbeans.modules.csl.spi.ParserResult require module: Common Scripting Language Types. Add it 5.c- Add: import java.util.List; import org.netbeans.modules.csl.api.Error; 5.d- Add abstract method : @Override public List<? extends Error> getDiagnostics() { return null; //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } The SJParser now looks like this: package org.simplejava.parser; import java.io.Reader; import java.io.StringReader; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.event.ChangeListener; import org.netbeans.modules.csl.api.Error; import org.netbeans.modules.parsing.api.Snapshot; import org.netbeans.modules.parsing.api.Task; import org.netbeans.modules.parsing.spi.Parser; import org.netbeans.modules.parsing.spi.Parser.Result; import org.netbeans.modules.parsing.spi.SourceModificationEvent; import org.simplejava.jccparser.JavaParser; public class SJParser extends Parser { private Snapshot snapshot; private JavaParser javaParser; @Override public void parse(Snapshot snapshot, Task task, SourceModificationEvent event) { this.snapshot = snapshot; Reader reader = new StringReader(snapshot.getText().toString()); javaParser = new JavaParser(reader); try { javaParser.CompilationUnit(); } catch (org.simplejava.jccparser.ParseException ex) { Logger.getLogger(SJParser.class.getName()).log(Level.WARNING, null, ex); } } @Override public Result getResult(Task task) { return new SJParserResult(snapshot, javaParser); } @Override public void cancel() { } @Override public void addChangeListener(ChangeListener changeListener) { } @Override public void removeChangeListener(ChangeListener changeListener) { } public static class SJParserResult extends org.netbeans.modules.csl.spi.ParserResult { private JavaParser javaParser; private boolean valid = true; SJParserResult(Snapshot snapshot, JavaParser javaParser) { super(snapshot); this.javaParser = javaParser; } public JavaParser getJavaParser() throws org.netbeans.modules.parsing.spi.ParseException { if (!valid) { throw new org.netbeans.modules.parsing.spi.ParseException(); } return javaParser; } @Override protected void invalidate() { valid = false; } @Override public List<? extends Error> getDiagnostics() { return null; //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } } } Le 31/01/2020 à 19:56, Geertjan Wielenga a écrit : > What does this mean, exactly: > > "update SJParserResult class to extend o.n.m.csl.spi.ParserResult > instead of o.n.m.parsing.spi.Parser.Result" > > I'm not going ton try to guess, since you have done the above, would > be best if you'd explain how you made the above change -- it's not a > simple question of changing import statements. > > Gj > > On Fri, Jan 31, 2020 at 7:07 PM Bilu Al <albi...@gmail.com > <mailto:albi...@gmail.com>> wrote: > > Complete step is available in this tutorial: > https://platform.netbeans.org/tutorials/nbm-javacc-parser.html > > You can also get the complete source code of the tutorial to avoid > all the steps: > > https://github.com/vparfonov/api-samples/tree/master/nb-api-samples~api-samples/versions/7.2/tutorials/SimpleJava2 > > > > 1. Open Project SimpleJava2 > 2. You should miss File Template dependency. Add it > 3. Run SimpleJava2 project > 4. open a SJ file (sample.sj <http://sample.sj>) containing a > java like source code => Exception occur > (java.lang.ClassCastException:) > 5. update SJParserResult class to extend > o.n.m.csl.spi.ParserResult instead of > o.n.m.parsing.spi.Parser.Result like suggest here > https://bz.apache.org/netbeans/show_bug.cgi?id=167064 > 6. Rerun the Project, you should get now > java.lang.NullPointerException > > > Env is: > Product Version: Apache NetBeans IDE 11.1 > Updates: NetBeans IDE is updated to version NetBeans 8.2 Patch 2 > Java: 1.8.0_181; Java HotSpot(TM) 64-Bit Server VM 25.181-b13 > Runtime: Java(TM) SE Runtime Environment 1.8.0_181-b13 > System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb) > User directory: C:\Users\xxxx\AppData\Roaming\NetBeans\11.1 > Cache directory: C:\Users\xxxx\AppData\Local\NetBeans\Cache\11.1 > > Thanks > > > > Le ven. 31 janv. 2020 à 18:37, Geertjan Wielenga > <geert...@apache.org <mailto:geert...@apache.org>> a écrit : > > > > Complete environment and precise steps to take to reproduce the > problem. > > > > Gj > > > > On Fri, Jan 31, 2020 at 6:35 PM Bilu Al <albi...@gmail.com > <mailto:albi...@gmail.com>> wrote: > >> > >> Any advice hear please? > >> > >> > >> Le jeu. 30 janv. 2020 à 16:53, Bilu Al <albi...@gmail.com > <mailto:albi...@gmail.com>> a écrit : > >> > > >> > Hello, > >> > > >> > Can somebody tell if this tutorial still up to date: > https://platform.netbeans.org/tutorials/nbm-javacc-parser.html > with Apache NetBeans IDE 11.1 platform? > >> > > >> > I am facing an issue when implementing this in my module > >> > > >> > I have the same issue with the complete tutorial source code > : > > https://github.com/vparfonov/api-samples/tree/master/nb-api-samples~api-samples/versions/7.2/tutorials/SimpleJava2 > >> > > >> > i am getting this exception: > >> > > >> > java.lang.ClassCastException: > org.simplejava.parser.SJParser$SJParserResult cannot be cast to > org.netbeans.modules.csl.spi.ParserResult > >> > at > > org.netbeans.modules.csl.hints.infrastructure.SuggestionsTask.run(SuggestionsTask.java:54) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561) > >> > [catch] at > > org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:786) > >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663) > >> > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > >> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > >> > at > org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418) > >> > at > > org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45) > >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278) > >> > at > > org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033) > >> > > >> > I follow the fix here: > https://bz.apache.org/netbeans/show_bug.cgi?id=167064 about the > previous exception and now i am getting this indefinitely : > >> > > >> > java.lang.NullPointerException > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider.computeErrors(GsfHintsProvider.java:114) > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider.processErrors(GsfHintsProvider.java:388) > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider.processErrorsRecursive(GsfHintsProvider.java:359) > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider.refreshErrors(GsfHintsProvider.java:327) > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider.access$200(GsfHintsProvider.java:79) > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider$2.run(GsfHintsProvider.java:407) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586) > >> > at > > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:130) > >> > at > > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:114) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178) > >> > at > > org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153) > >> > at > > org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335) > >> > at > > org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118) > >> > at > > org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:178) > >> > Caused: org.netbeans.modules.parsing.spi.ParseException > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:186) > >> > at > > org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:81) > >> > [catch] at > > org.netbeans.modules.csl.hints.GsfHintsProvider.run(GsfHintsProvider.java:405) > >> > at > > org.netbeans.modules.csl.hints.GsfHintsProvider.run(GsfHintsProvider.java:79) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:786) > >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702) > >> > at > > org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663) > >> > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > >> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > >> > at > org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418) > >> > at > > org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45) > >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278) > >> > at > > org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033) > >> > > >> > Thanks you > >> > >> > --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@netbeans.apache.org > <mailto:users-unsubscr...@netbeans.apache.org> > >> For additional commands, e-mail: users-h...@netbeans.apache.org > <mailto:users-h...@netbeans.apache.org> > >> > >> For further information about the NetBeans mailing lists, visit: > >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists > >> >