Probleme bei eigene File-Plugin

Alles was NetBeans erweitert

Moderator: wegus

Antworten
uwerothfeld
Beiträge: 43
Registriert: 27.09.2007, 14:44

Probleme bei eigene File-Plugin

Beitrag von uwerothfeld » 15.08.2011, 09:42

Hallo zusammen,

ich versuche nach dem Tutorial: http://wiki.netbeans.org/How_to_create_ ... w_language
ein eigenes File-Plugin zu erstellen. Allerdings bekomme ich folgende Fehlermeldung, wenn ich das Plugin baue:

Code: Alles auswählen

Created dir: .../Omnet++ NED Language Support/build/classes
Compiling 12 source files to .../Omnet++ NED Language Support/build/classes
warning: No processor claimed any of these annotations: [javax.annotation.Generated]
Note: generated layer entry: Editors/text/x-ned/MultiView/de-tucottbus-rnks-omnet-ned-NEDDataObject-createEditor.instance
Note: generated layer entry: Editors/text/x-ned/MultiView/de-tucottbus-rnks-omnet-ned-NEDVisualElement.instance
Was mache ich falsch?

Gruß und Dank
uwe

Benutzeravatar
nigjo
Beiträge: 605
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Probleme bei eigene File-Plugin

Beitrag von nigjo » 15.08.2011, 17:13

Hi
uwerothfeld hat geschrieben:Was mache ich falsch?
gar nichts. Die Ausgabe ist vollkommen in Ordnung :)

Code: Alles auswählen

Created dir: .../Omnet++ NED Language Support/build/classes
Compiling 12 source files to .../Omnet++ NED Language Support/build/classes
Das sind ganz normale, informelle Ausgaben des Compilers. Aussage: "Ich arbeite"

Code: Alles auswählen

Note: generated layer entry: Editors/text/x-ned/MultiView/de-tucottbus-rnks-omnet-ned-NEDDataObject-createEditor.instance
Note: generated layer entry: Editors/text/x-ned/MultiView/de-tucottbus-rnks-omnet-ned-NEDVisualElement.instance
Diese Compilerausgaben kommen von den NetBeans Erweiterungen, die die Annotations aus den Quelldateien in die passenden Einträge der layer.xml umwandeln. Das die rot erscheinen ist zwar etwas verwirrend, aber kein Fehler. Das "Note:" am Anfang der Zeile ist die korrekte Bezeichnung dafür: Eine "Notiz", nichts weiter.

Code: Alles auswählen

warning: No processor claimed any of these annotations: [javax.annotation.Generated]
Diese Warnung kann in DIESEM Fall ignoriert werden. Die "@Generated" Annotation wird von NetBeans (bzw. dem Compiler, den NetBeans anwirft) nicht verarbeitet. Eigentlich sollte(!) jede Annotation während des Compiliervorgangs von einem "Anntationprocessor" verarbeitet werden. Manche Annotations sind aber erst zur Laufzeit des Programms interessant und der Compiler macht eh nichts damit. @Generated ist so eine Annotation, mit der der Compiler eigentlich nichts wirklich macht. Also nicht so schlimm.

Diese Arten der "Fehlermeldungen" werden dann interessant, wenn man eigene Annotations und die zugehörigen "Processor"-Klassen schreiben möchte.

Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

uwerothfeld
Beiträge: 43
Registriert: 27.09.2007, 14:44

Re: Probleme bei eigene File-Plugin

Beitrag von uwerothfeld » 16.08.2011, 11:58

Hallo,

erst mal vielen Dank. So kam ich weiter. Ich habe noch ein neues Problem, vielleicht kannst du mir ja auch da weiterhelfen. Ich versuche eine Editor-Plugin zu bauen, welches mir für die Omnet Ned Sprache ein einfaches Syntax-Highlighting macht. Dazu habe ich erst mal die Gramatik soweit definiert:

Code: Alles auswählen

options {
 JAVA_UNICODE_ESCAPE = true;
  ERROR_REPORTING = false;
  STATIC = false;
  JDK_VERSION = "1.5";
  BUILD_PARSER = false;
  COMMON_TOKEN_ACTION = false;
}

PARSER_BEGIN(NEDParser)

import java.io.*;

public class NEDParser {}

PARSER_END(NEDParser)

/* WHITE SPACE and Comment */
TOKEN :
{
    < WHITESPACE: " " | "\t" | "\n" | "\r" | "\f"> |
    < SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?>
}

/* real grammar token */
TOKEN:
{  
    < NAME:                     <STRING_LITERAL> | <CHAR_LITERAL>  > |
    < STRING_LITERAL:           "\"" ( <GRAPHIC> | <ESCAPE_SEQUENCE> ) * "\"" > |
    < WIDE_STRING_LITERAL:      "L\"" ( <GRAPHIC> | <ESCAPE_SEQUENCE> ) * "\"" > |
    < CHAR_LITERAL:             "\'"( <GRAPHIC> | <ESCAPE_SEQUENCE> ) * "\'"> |
    < WIDE_CHAR_LITERAL:        "L'" ( <GRAPHIC> | <ESCAPE_SEQUENCE> ) * > |
    < GRAPHIC:                  ( <LETTER> | <DIGIT> | <OPERATOR> | <PUNCTUATION> |
                                "!" | "#" | "$" | "_" | "\"" | "\'" | "?" ) > |
    < ESCAPE_SEQUENCE:          ( "\\\\" | "\\'" | "\\\"" | "\\?" | "\\a" | "\\b" | "\\f" | "\\n" | "\\r" | "\\t" | "\\v" | "\\0" |
                                <HEX_ESCAPE_SEQUENCE> | <OCTAL_ESCAPE_SEQUENCE> ) > |
    < HEX_ESCAPE_SEQUENCE:      "\\" ( "x" | "X" ) <HEX_DIGIT> (<HEX_DIGIT>)* > |
    < OCTAL_ESCAPE_SEQUENCE:    "\\" <OCTAL_DIGIT> <OCTAL_DIGIT> <OCTAL_DIGIT> > |
    < DIGIT:                    [ "0" - "9" ] > |
    < NON_ZERO_DIGIT:           [ "1" - "9" ] > |
    < OCTAL_DIGIT:              [ "0" - "7" ] > |
    < HEX_DIGIT:                [ "0" - "9" ] | [ "A" - "F" ] | ["a" - "f" ] > |
    < LETTER:                   [ "a" - "z" ] | [ "A" - "Z" ] > |
    < OPERATOR:                 ( "+" | "-" | "*" | "/" | "%" | "=" | "==" | "!=" | "<</B>" | ">" | "<=" | ">=" | 
                                 "++" | "--" | "<<" | ">>" | "&" | "&&" | "|" | "||" | "^" | "[" | "]" | "?" | 
                                 "!" | "~" | "+=" | "-=" | "*=" | "/=" | "%=" | "|=" | "&=" | "^=" | "<<=" | ">>=" ) > |
    < PUNCTUATION:              (";" | "." | "{" | "}" ) >
}

/* keywords */
TOKEN:
{
    < PACKAGE:          "package" >
}

void CompilationUnit():
{}
{
  definitions()
  <EOF>
}

void definitions():
{}
{
  definition() ( definition() )*

}


void definition():
{}
{
  packagedeclaration()
}


void packagedeclaration():
{}
{
  <PACKAGE> dottedname() ";"
}

void dottedname():
{}
{
  <NAME> ( "."  <NAME> ) *
}


Nun bekomme ich von JavaCC folgende Warning:

Code: Alles auswählen

Warning:  "." cannot be matched as a string literal token at line 138, column 12. It will be matched as  <GRAPHIC>.
Warning:  ";" cannot be matched as a string literal token at line 131, column 26. It will be matched as  <GRAPHIC>.
Und wenn ich mein Plugin baue und ausführe renne ich in folgende Exception:

Code: Alles auswählen

java.lang.AssertionError
	at org.netbeans.lib.lexer.token.AbstractToken.<init>(AbstractToken.java:95)
	at org.netbeans.lib.lexer.token.DefaultToken.<init>(DefaultToken.java:86)
	at org.netbeans.lib.lexer.LexerInputOperation.createDefaultTokenInstance(LexerInputOperation.java:306)
	at org.netbeans.lib.lexer.LexerInputOperation.createToken(LexerInputOperation.java:284)
	at org.netbeans.spi.lexer.TokenFactory.createToken(TokenFactory.java:105)
	at org.netbeans.spi.lexer.TokenFactory.createToken(TokenFactory.java:89)
	at de.tucottbus.rnks.omnet.ned.lexer.NEDLexer.nextToken(NEDLexer.java:35)
	at org.netbeans.lib.lexer.LexerInputOperation.nextToken(LexerInputOperation.java:193)
	at org.netbeans.lib.lexer.inc.IncTokenList.tokenOrEmbeddingImpl(IncTokenList.java:188)
	at org.netbeans.lib.lexer.inc.IncTokenList.tokenOrEmbedding(IncTokenList.java:183)
	at org.netbeans.api.lexer.TokenSequence.moveNext(TokenSequence.java:457)
Liegt dies nun am JavaCC Warning oder habe ich noch ein ganz anderes Problem?

Gruß
uwe

Antworten