3 Stimmen

Wie kann ich die folgenden Warnungen vor mehreren Alternativen in meiner ANTLR3-Grammatik loswerden?

[11:45:19] warning(200): mygrammar.g:14:57: Decision can match input such as "','" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
[11:45:19] warning(200): C:\Users\Jarrod Roberson\mygrammar.g:14:57: Decision can match input such as "','" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input

Ich möchte in der Lage sein, Funktionen innerhalb anderer Funktionen zu verschachteln.

myfunction(x) ->
  sqr(a) -> a * a,
  y -> sqr(x).

Hier ist die Zeile, über die er sich beschwert

function : ID '(' args ')' '->' statement (',' statement)* ;

und so sieht es aus, wenn man die Alternative betrachtet

statement : ATOM
          | expression
          | assignment
          | function
          ;

Ich verwende . als Endregel meiner Erklärung

program : (statement'.')*;

So sieht das Synatx-Diagramm in ANTLRWorks aus

syntax diagram
(Quelle: <a href="http://www.vertigrated.com/images/alternatives.png" rel="nofollow noreferrer">vertigrated.de </a>)

Ich mag es wirklich, wenn Dinge ohne Warnungen kompiliert werden/funktionieren. Wie kann ich diese Warnbedingung beheben?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X