C stili tek satır açıklamalarını anlayan küçük bir dil için bir dilbilgisi yazdım. İşte Tek satırlı C stili yorumların Antlr ile ayrıştırılması
// this is a comment
comment senaryosunun son ve zaman dışında antlr v3.0.1 eserlerin
SINGLELINE_COMMENT
: '/' '/' (options {greedy=false;} : ~('\r' | '\n'))* ('\r' | '\n')+ {$channel=HIDDEN;};
WS : (' '|'\r'|'\t'|'\u000C'|'\n')+ {$channel=HIDDEN;};
Bu hemen hemen türünü kullanarak, bu dil için yazdığı gramer bir parçasıdır hiçbir NL/CR orada sona eriyor, ben antlr dan (zamanında) rahatsız edici bir mesaj aldım:
line 1:20 required (...)+ loop did not match anything at character '<EOF>'
Bu mesajdan kurtulmak nasıl
? (..)+
ifadesine EOF
belirtecini eklemeyi denedim, ancak bu çalışmaz.
Bunun hakkında emin değilim, ancak yeni satırı isteğe bağlı yaparsa ne olur, yani '+' öğesini bir '?'? ya da belki bir '' '? – nijoakim
Açgözlü seçenekleri dışarıda bırakma (yalnızca + için görünüyorlar) ve artı bir soru işaretiyle değiştirmeye ne dersiniz? –