class SyntaxSuggest::ExplainSyntax

Erklärt Syntaxfehler basierend auf ihrer Quelle

Beispiel

source = "def foo; puts 'lol'" # Note missing end
explain ExplainSyntax.new(
  code_lines: CodeLine.from_source(source)
).call
explain.errors.first
# => "Unmatched keyword, missing `end' ?"

Wenn der Fehler nicht durch lexikalisches Zählen bestimmt werden kann, wird der Parser auf die Eingabe angewendet und die rohen Fehler zurückgegeben.

Beispiel

source = "1 * " # Note missing a second number
explain ExplainSyntax.new(
  code_lines: CodeLine.from_source(source)
).call
explain.errors.first
# => "syntax error, unexpected end-of-input"