/ / Грешка при компилиране на Java: достига края на файла по време на анализа - java, compiler-construction, compilation, compiler-errors

Грешка в компилиране на Java: достига края на файла при анализа - java, compiler-construction, compilation, compiler-errors

public class Test{
public static void main(String[] arg){
System.out.println("Alexander The Great");
}
}

В този код, ако премахна първата кавичка в низа, получавам 3 грешки. 1. ")" очаквано 2. unclosed string literal 3. не декларация

добре, разбрах по-горе грешки.

Ако премахна втория кавички в низа, получавам и три грешки. 1. unclosed string literal 2. ";" очакван 3. достига края на файла при анализа

Разбрах 1 и 2, но защо 3 ??

Обикновено това не се случва, когато липсват скоби? Но е ясно, че имам правилен брой скоби. Също така, защо не първият случай да даде грешката "достигна края на файла при анализа"?

Послепис Използвам jGrasp, java 1.6.

Отговори:

1 за отговор № 1

Излизане от първи цитат потенциално дава на анализатор малко повече даработи с, защото ще се опита да третира "Александър" като справка. След като удари пространството, единственото правно съдържание е останалата част от израза, но вместо това смята, че това е друг идентификатор.

Може да се вкарва бонус ) да се опитате да се възстановите; зависи от изпълнението.

Оставянето на последната оферта ще изпрати анализаторадо края на линията. Вместо да се опитва да затвори това изявление, то се губи малко и се завърта и не може да се възстанови и да удари края на файла.

От върха на главата ми, за мен изглежда, че тъй катоJava низовете са само един ред, може да направи същото нещо и да се опитат да затворят низа и / или изявление в този случай и да се възстановят малко по-грациозно. Може би просто съм пропуснал нещо очевидно.


0 за отговор № 2

Тъй като EOF е срещан при търсене на марка за котировки. Не съм сигурен дали са посочени или не точно съобщенията за грешка, които трябва да бъдат излъчени за лош код.


-1 за отговор № 3

използване на публични static void main (String arg []) на мястото на публичния статичен глас (String [] arg)