Skip to content

Duplicate members in C runtime with imports: duplicate member 'g' #227

Open
@klephron

Description

@klephron

Steps to reproduce

// Option.g
grammar Option;

options {
  language=C;
}

import Option2, Option3;

source
  : source_item+
  ;

// Option2.g
parser grammar Option2;

source_item
  : test
  ;
// Option3.g

parser grammar Option3;

test
  : 'a'
  ;

Generate C code:

java -jar antlr-complete-3.5.3.jar Option.g

In OptionParser.h struct elements have duplicated names:

// OptionParser.h

struct OptionParser_Ctx_struct
{
    pANTLR3_PARSER   pParser;
	pOption_Option2	g;
	pOption_Option3	g;

  ...
};

Expected behavior

No duplicated names.

Like when using Java runtime:

@SuppressWarnings("all")
public class OptionParser extends Parser {
	// delegates
	public Option_Option2 gOption2;
	public Option_Option3 gOption3;
	public Parser[] getDelegates() {
		return new Parser[] {gOption2, gOption3};
	}
	...
}

Versions

Java: openjdk 17.0.12 2024-07-16
ANTLR3: 3.5.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions