-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathCsvParserDefinition.java
More file actions
82 lines (68 loc) · 2.39 KB
/
CsvParserDefinition.java
File metadata and controls
82 lines (68 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package net.seesharpsoft.intellij.plugins.csv;
import com.intellij.lang.ASTNode;
import com.intellij.lang.PsiParser;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.project.Project;
import com.intellij.psi.FileViewProvider;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IFileElementType;
import com.intellij.psi.tree.TokenSet;
import net.seesharpsoft.intellij.lang.FileParserDefinition;
import net.seesharpsoft.intellij.plugins.csv.parser.CsvParser;
import net.seesharpsoft.intellij.plugins.csv.psi.CsvFile;
import net.seesharpsoft.intellij.plugins.csv.psi.CsvFileElementType;
import net.seesharpsoft.intellij.plugins.csv.psi.CsvTypes;
import org.jetbrains.annotations.NotNull;
public class CsvParserDefinition implements FileParserDefinition {
public static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE);
public static final TokenSet STRING_LITERALS = TokenSet.create(CsvTypes.TEXT, CsvTypes.ESCAPED_TEXT);
public static final IFileElementType FILE = new CsvFileElementType(CsvLanguage.INSTANCE);
@NotNull
@Override
public Lexer createLexer(Project project) {
throw new UnsupportedOperationException("use 'createLexer(PsiFile file)' instead");
}
@Override
@NotNull
public TokenSet getWhitespaceTokens() {
return WHITE_SPACES;
}
@Override
@NotNull
public TokenSet getCommentTokens() {
return TokenSet.EMPTY;
}
@Override
@NotNull
public TokenSet getStringLiteralElements() {
return STRING_LITERALS;
}
@Override
@NotNull
public PsiParser createParser(final Project project) {
return new CsvParser();
}
@Override
public @NotNull IFileElementType getFileNodeType() {
return FILE;
}
@Override
public @NotNull PsiFile createFile(@NotNull FileViewProvider viewProvider) {
return new CsvFile(viewProvider, viewProvider.getFileType());
}
@Override
@NotNull
public PsiElement createElement(ASTNode node) {
return CsvTypes.Factory.createElement(node);
}
@Override
public Lexer createLexer(@NotNull PsiFile file) {
return CsvLexerFactory.getInstance().createLexer(file);
}
@Override
public PsiParser createParser(@NotNull PsiFile file) {
return createParser(file.getProject());
}
}