2016-04-15 2 views
0

Я только что установил JavaCC и пытаюсь запустить одну из предоставленных программ-примеров (Simple1). Я скомпилировал это хорошо, но когда я запускаю его, у меня есть небольшая проблема. Я указываю ввод, нажимаю enter, но он не распознает это как конец строки.JavaCC - Signal EOL Mac Terminal

Везде онлайн Я смотрю, что «ctrl + D» заставит программу читать мой ввод, но на моем Mac он выходит из программы. Аналогично, «cmd + D», похоже, просто разбивает окно терминала?

Любая помощь была бы принята с благодарностью.

Спасибо.

Изменить: Пример выглядит следующим образом

PARSER_BEGIN(Simple1) 

/** Simple brace matcher. */ 
public class Simple1 { 

    /** Main entry point. */ 
    public static void main(String args[]) throws ParseException { 
    Simple1 parser = new Simple1(System.in); 
    parser.Input(); 
    } 

} 

PARSER_END(Simple1) 

/** Root production. */ 
void Input() : 
{} 
{ 
    MatchedBraces() ("\n"|"\r")* <EOF> 
} 

/** Brace matching production. */ 
void MatchedBraces() : 
{} 
{ 
    "{" [ MatchedBraces() ] "}" 
} 
+0

Можете ли вы показать образец кода, который вы пытаетесь скомпилировать? – Cloxure

+0

Это просто Simple1.jj, который поставляется в качестве примера с JavaCC, он добавлен в вопрос! – fierynot

+0

Клавиша «return» (или «enter») даст вам символ новой строки («\ n»). cntl-D - для EOF. –

ответ

0

Решение заключалось в использовании CMD + D. Хотя это, казалось, выходит из программы без вывода, это было связано с природой моего кода, что требовало окончания EOL EOF, а не только EOL или EOF.