mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-28 17:27:49 +08:00
1.4 KiB
1.4 KiB
title |
---|
3. Grammar and Parser |
3.1. Define a token type
{% include /code_samples/simple_language_plugin/src/com/simpleplugin/psi/SimpleTokenType.java %}
3.2. Define an element type
{% include /code_samples/simple_language_plugin/src/com/simpleplugin/psi/SimpleElementType.java %}
3.3. Define grammar
Define a grammar for the properties language with /com/simpleplugin/Simple.bnf file.
{% include /code_samples/simple_language_plugin/src/com/simpleplugin/Simple.bnf %}
As you see a properties file can contain properties, comments and line breaks.
The grammar defines how flexible the support for a language can be. We specified that a property may have or may not have key and value. This lets the IDE still recognise incorrectly defined properties and provide corresponding code analysis and quick-fixes.
3.4. Generate a parser
Now when the grammar is defined we can generate a parser with PSI classes via Generate Parser Code from the context menu on Simple.bnf file. This will generate a parser and PSI elements in gen folder. Mark this folder as Generated Sources Root and make sure everything is compiled without errors.