dotnet / dotnet/vblang

Spec clarification: downloadable grammar cannot be used by ANTLR to generate a parser

Open
#281 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
328
Forks
71
PR merge metrics
No merged PRs in 30d

Description

The grammar available from [here (link at bottom of page)](https://github.com/dotnet/vblang/tree/master/spec) is supposed to be in ANTLR format. However, ANTLR reports many warnings and errors:

>warning(184): d:\Zev\Projects\vbnet-grammer\vb.g4:187:0: One of the token Keyword values unreachable. REM is always overlapped by token CommentMarker
> warning(184): d:\Zev\Projects\vbnet-grammer\vb.g4:485:0: One of the token CCBinaryOperator values unreachable. & is always overlapped by token LongTypeCharacter
> warning(184): d:\Zev\Projects\vbnet-grammer\vb.g4:1386:0: One of the token OverloadableOperator values unreachable. & is always overlapped by token LongTypeCharacter
> warning(184): d:\Zev\Projects\vbnet-grammer\vb.g4:238:0: One of the token BooleanLiteral values unreachable. False is always overlapped by token Keyword
> warning(184): d:\Zev\Projects\vbnet-grammer\vb.g4:238:0: One of the token BooleanLiteral values unreachable. True is always overlapped by token Keyword
> ...
> error(119): d:\Zev\Projects\vbnet-grammer\vb.g4::: The following sets of rules are mutually left-recursive [CCExpression, CCOperatorExpression] and [Expression, IsExpression, MemberAccessBase, DictionaryAccessExpression, InvocationExpression, IndexExpression, AdditionOperatorExpression, SubtractionOperatorExpression, MultiplicationOperatorExpression, FPDivisionOperatorExpression, IntegerDivisionOperatorExpression, ModuloOperatorExpression, ExponentOperatorExpression, RelationalOperatorExpression, LikeOperatorExpression, ConcatenationOperatorExpression, ShortCircuitLogicalOperatorExpression, LogicalOperatorExpression, ShiftOperatorExpression, XMLMemberAccessExpression, TypeExpression, MemberAccessExpression, OperatorExpression, ArithmeticOperatorExpression, DivisionOperatorExpression]

Since ANTLR is a standard format for defining language grammars, I suggest modifying the grammar to make it ANTLR4 compatible.

Alternatively, the format should not be described as ANTLR.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.