I would look for other implementations of that class on GitHub and elsewhere to see how others have done it.
Gj On Fri, 31 Jan 2020 at 20:18, Bilu <albi...@gmail.com> wrote: > 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> 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) 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> 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> wrote: >> >> >> >> Any advice hear please? >> >> >> >> >> >> Le jeu. 30 janv. 2020 à 16:53, Bilu Al <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 >> >> For additional commands, e-mail: users-h...@netbeans.apache.org >> >> >> >> For further information about the NetBeans mailing lists, visit: >> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists >> >> >> >