build: move parser and tokenizer into separate modules

This commit is contained in:
2023-10-16 21:52:21 -07:00
parent 9338b01b48
commit 15f5f313cc
57 changed files with 92 additions and 61 deletions

View File

@ -4,7 +4,7 @@ import com.intellij.lang.BracePair
import com.intellij.lang.PairedBraceMatcher
import com.intellij.psi.PsiFile
import com.intellij.psi.tree.IElementType
import gay.pizza.pork.parser.TokenType
import gay.pizza.pork.tokenizer.TokenType
class PorkBraceMatcher : PairedBraceMatcher {
override fun getPairs(): Array<BracePair> = arrayOf(

View File

@ -3,7 +3,7 @@ package gay.pizza.pork.idea
import com.intellij.psi.tree.IElementType
import com.intellij.psi.tree.TokenSet
import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.parser.TokenType
import gay.pizza.pork.tokenizer.TokenType
object PorkElementTypes {
private val tokenTypeToElementType = mutableMapOf<TokenType, IElementType>()

View File

@ -3,10 +3,10 @@ package gay.pizza.pork.idea
import com.intellij.lexer.LexerBase
import com.intellij.openapi.progress.ProcessCanceledException
import com.intellij.psi.tree.IElementType
import gay.pizza.pork.parser.BadCharacterError
import gay.pizza.pork.parser.StringCharSource
import gay.pizza.pork.parser.Tokenizer
import gay.pizza.pork.parser.UnterminatedTokenError
import gay.pizza.pork.tokenizer.BadCharacterError
import gay.pizza.pork.tokenizer.StringCharSource
import gay.pizza.pork.tokenizer.Tokenizer
import gay.pizza.pork.tokenizer.UnterminatedTokenError
import com.intellij.psi.TokenType as PsiTokenType
class PorkLexer : LexerBase() {

View File

@ -11,7 +11,7 @@ import com.intellij.psi.util.elementsAtOffsetUp
import gay.pizza.pork.idea.psi.gen.ArgumentSpecElement
import gay.pizza.pork.idea.psi.gen.FunctionCallElement
import gay.pizza.pork.idea.psi.gen.FunctionDefinitionElement
import gay.pizza.pork.parser.TokenType
import gay.pizza.pork.tokenizer.TokenType
@Suppress("UnstableApiUsage")
class PorkParameterInfoHandler : ParameterInfoHandler<FunctionCallElement, FunctionDefinitionElement> {

View File

@ -11,7 +11,7 @@ import com.intellij.psi.PsiFile
import com.intellij.psi.tree.IFileElementType
import com.intellij.psi.tree.TokenSet
import gay.pizza.pork.idea.psi.gen.PorkElementFactory
import gay.pizza.pork.parser.TokenType
import gay.pizza.pork.tokenizer.TokenType
class PorkParserDefinition : ParserDefinition {
val fileElementType = IFileElementType(PorkLanguage)

View File

@ -6,8 +6,8 @@ import com.intellij.openapi.editor.colors.TextAttributesKey
import com.intellij.openapi.fileTypes.SyntaxHighlighter
import com.intellij.openapi.fileTypes.SyntaxHighlighterBase
import com.intellij.psi.tree.IElementType
import gay.pizza.pork.parser.TokenFamily
import gay.pizza.pork.parser.TokenType
import gay.pizza.pork.tokenizer.TokenFamily
import gay.pizza.pork.tokenizer.TokenType
object PorkSyntaxHighlighter : SyntaxHighlighter {
override fun getHighlightingLexer(): Lexer {

View File

@ -1,7 +1,10 @@
package gay.pizza.pork.idea
import com.intellij.lang.PsiBuilder
import gay.pizza.pork.parser.*
import gay.pizza.pork.parser.ParserAwareTokenSource
import gay.pizza.pork.tokenizer.SourceIndex
import gay.pizza.pork.tokenizer.Token
import gay.pizza.pork.tokenizer.TokenType
import com.intellij.psi.TokenType as PsiTokenType
@Suppress("UnstableApiUsage")