Измените сигнатуру вашего метода цикла следующим образом:
public static void looping (object PortList)
Как сказано в документации , ParameterizedThreadStart
, переданный как параметр конструктора потока, должен быть object
.
ANTLR или JavaCC были бы двумя, которые я знаю. Я рекомендовал бы ANTLR сначала.
ANTLR может казаться сложным и тяжелым, но Вы не должны использовать всю функциональность, которую он включает; это приятно разделено на уровни. Я - большой поклонник использования его для разработки синтаксических анализаторов. Для начала, можно использовать превосходный ANTLRWorks, чтобы визуализировать и протестировать грамматики, которые Вы создаете. Действительно хорошо смочь наблюдать, что он получает маркеры, создает деревья синтаксического анализа и ступает посредством процесса.
Для Вашего проекта текстового редактора я проверил бы грамматики фильтра, которые могли бы удовлетворить Вашим потребностям приятно. Для грамматик фильтра Вы не должны указывать всю лексическую структуру своего языка, только части, о которых Вы заботитесь (т.е. должен выделить, окрасить или индексировать) и можно всегда добавлять в больше, пока Вы не можете обработать целый язык.
SableCC
Другой интересной опцией (который я еще не попробовал) будет Xtext, который использует Antlr, но также и включает инструменты для создания редакторов Eclipse для Вашего языка.
ANTLR является способом пойти. Я не создал бы его вручную. Вы также найдете, озираетесь ли Вы на веб-сайте ANTLR, что грамматики доступны для Java, XML, и т.д.
Другой опцией был бы Xtext. Это не только генерирует синтаксический анализатор для Вашей грамматики, но также и полного редактора с окраской синтаксиса, ошибочные маркеры, содержание помогает и обрисовывает в общих чертах представление.
Я сделал это с JFlex прежде, и было довольно удовлетворено им. Но язык, который я выделял, был достаточно прост, что мне не был нужен парсер-генератор, таким образом, Ваш пробег может варьироваться.
JLex и КУБОК являются достойным лексическим анализатором и парсерами-генераторами, соответственно. Я в настоящее время использую обоих для разработки простого языка сценариев для проекта, я продолжаю работать.
Я не думаю, что Вам нужен лексический анализатор. все, в чем Вы нуждаетесь, сначала читается расширение файла для обнаружения языка и затем из XML-файла, который перечислил ключевые слова языка, легко находят их и выделяют их.