Лексер компилятора Scala - PullRequest
       1

Лексер компилятора Scala

3 голосов
/ 22 января 2012

Я пытаюсь получить список токенов (меня больше всего интересуют ключевые слова) и их позиций для данного исходного файла scala.

Я думаю, что внутри компилятора scala есть утилита лексера, но я не могу ее найти. Можете ли вы указать мне правильное направление?

Ответы [ 3 ]

5 голосов
/ 22 января 2012

A простой лексер для языка, подобного Scala предоставляется в стандартной библиотеке.

Небольшая служебная программа, которая токенизирует исходный код Scala, используя тот же лексер, что и компилятор, живетздесь

2 голосов
/ 23 января 2012

Скалярная форма имеет точный лексер Scala, который вы можете использовать:

import scalariform.lexer._
val tokens = ScalaLexer.rawTokenise("class A", forgiveErrors = true)
val keywords = tokens.find(_.tokenType.isKeyword)
val comments = tokens.find(_.tokenType.isComment)
1 голос
/ 22 января 2012

Parser Combinators может помочь в том, что вы пытаетесь достичь здесь, особенно если позже вы не только заинтересованы в разборе ключевых слов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...