Skip to content

Commit

Permalink
fix Issue 13538 - Divide old C style syntax from D style grammar rule
Browse files Browse the repository at this point in the history
  • Loading branch information
9rnsr committed Oct 2, 2014
1 parent 01a407c commit 6305b15
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 25 deletions.
38 changes: 26 additions & 12 deletions declaration.dd
Expand Up @@ -22,8 +22,10 @@ $(GNAME Declarators):
$(I DeclaratorInitializer) $(D ,) $(GLINK DeclaratorIdentifierList)

$(GNAME DeclaratorInitializer):
$(GLINK Declarator)
$(GLINK Declarator) $(GLINK2 template, TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)
$(GLINK VarDeclarator)
$(GLINK VarDeclarator) $(GLINK2 template, TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)
$(GLINK AltDeclarator)
$(GLINK AltDeclarator) $(GLINK2 template, TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)

$(GNAME DeclaratorIdentifierList):
$(GLINK DeclaratorIdentifier)
Expand All @@ -34,29 +36,41 @@ $(GNAME DeclaratorIdentifier):
$(I Identifier) $(GLINK2 template, TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)

$(GNAME Declarator):
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I Declarator) $(D $(RPAREN)) $(GLINK DeclaratorSuffixes)$(OPT)
$(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK DeclaratorSuffixes)$(OPT)
$(GLINK VarDeclarator)
$(GLINK AltDeclarator)

$(GNAME Declarator2):
$(GLINK BasicType2)$(OPT) $(GLINK DeclaratorSuffixes)$(OPT)
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I Declarator2) $(D $(RPAREN)) $(GLINK DeclaratorSuffixes)$(OPT)
$(GNAME VarDeclarator):
$(GLINK BasicType2)$(OPT) $(I Identifier)

$(GNAME DeclaratorSuffixes):
$(GLINK DeclaratorSuffix)
$(GLINK DeclaratorSuffix) $(I DeclaratorSuffixes)
$(GNAME AltDeclarator):
$(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK AltDeclaratorSuffixes)
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I AltDeclaratorX) $(D $(RPAREN))
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I AltDeclaratorX) $(D $(RPAREN)) $(GLINK AltFuncDeclaratorSuffix)
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I AltDeclaratorX) $(D $(RPAREN)) $(GLINK AltDeclaratorSuffixes)

$(GNAME DeclaratorSuffix):
$(GNAME AltDeclaratorX):
$(GLINK BasicType2)$(OPT) $(I Identifier)
$(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK AltFuncDeclaratorSuffix)
$(GLINK AltDeclarator)

$(GNAME AltDeclaratorSuffixes):
$(GLINK AltDeclaratorSuffix)
$(GLINK AltDeclaratorSuffix) $(I AltDeclaratorSuffixes)

$(GNAME AltDeclaratorSuffix):
$(D [ ])
$(D [) $(VEXPRESSION) $(D ])
$(D [) $(GLINK Type) $(D ])

$(GNAME AltFuncDeclaratorSuffix):
$(GLINK2 function, Parameters) $(GLINK2 function, MemberFunctionAttributes)$(OPT)
$(GLINK2 template, TemplateParameters) $(GLINK2 function, Parameters) $(GLINK2 function, MemberFunctionAttributes)$(OPT) $(GLINK2 template, Constraint)$(OPT)
)

$(GRAMMAR
$(GNAME Type):
$(GLINK TypeCtors)$(OPT) $(GLINK BasicType)
$(GLINK TypeCtors)$(OPT) $(GLINK BasicType) $(GLINK Declarator2)
$(GLINK TypeCtors)$(OPT) $(GLINK BasicType) $(GLINK AltDeclarator)

$(GNAME TypeCtors):
$(GLINK TypeCtor)
Expand Down
40 changes: 27 additions & 13 deletions grammar.dd
Expand Up @@ -11,7 +11,7 @@ $(H3 $(LNAME2 type, Type))
$(GRAMMAR
$(GNAME Type):
$(GLINK TypeCtors)$(OPT) $(GLINK BasicType)
$(GLINK TypeCtors)$(OPT) $(GLINK BasicType) $(GLINK Declarator2)
$(GLINK TypeCtors)$(OPT) $(GLINK BasicType) $(GLINK AltDeclarator)

$(GNAME TypeCtors):
$(GLINK TypeCtor)
Expand Down Expand Up @@ -1014,33 +1014,47 @@ $(GNAME Declarators):
$(I DeclaratorInitializer) $(D ,) $(GLINK DeclaratorIdentifierList)

$(GNAME DeclaratorInitializer):
$(GLINK Declarator)
$(GLINK Declarator) $(D =) $(GLINK Initializer)
$(GLINK VarDeclarator)
$(GLINK VarDeclarator) $(GLINK TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)
$(GLINK AltDeclarator)
$(GLINK AltDeclarator) $(GLINK TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)

$(GNAME DeclaratorIdentifierList):
$(GLINK DeclaratorIdentifier)
$(GLINK DeclaratorIdentifier) $(D ,) $(I DeclaratorIdentifierList)

$(GNAME DeclaratorIdentifier):
$(I Identifier)
$(I Identifier) $(D =) $(GLINK Initializer)
$(I Identifier) $(GLINK TemplateParameters)$(OPT) $(D =) $(GLINK Initializer)

$(GNAME Declarator):
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I Declarator) $(D $(RPAREN)) $(GLINK DeclaratorSuffixes)$(OPT)
$(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK DeclaratorSuffixes)$(OPT)
$(GLINK VarDeclarator)
$(GLINK AltDeclarator)

$(GNAME VarDeclarator):
$(GLINK BasicType2)$(OPT) $(I Identifier)

$(GNAME Declarator2):
$(GLINK BasicType2)$(OPT) $(GLINK DeclaratorSuffixes)$(OPT)
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I Declarator2) $(D $(RPAREN)) $(GLINK DeclaratorSuffixes)$(OPT)
$(GNAME AltDeclarator):
$(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK AltDeclaratorSuffixes)
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I AltDeclaratorX) $(D $(RPAREN))
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I AltDeclaratorX) $(D $(RPAREN)) $(GLINK AltFuncDeclaratorSuffix)
$(GLINK BasicType2)$(OPT) $(D $(LPAREN)) $(I AltDeclaratorX) $(D $(RPAREN)) $(GLINK AltDeclaratorSuffixes)

$(GNAME DeclaratorSuffixes):
$(GLINK DeclaratorSuffix)
$(GLINK DeclaratorSuffix) $(I DeclaratorSuffixes)
$(GNAME AltDeclaratorX):
$(GLINK BasicType2)$(OPT) $(I Identifier)
$(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK AltFuncDeclaratorSuffix)
$(GLINK AltDeclarator)

$(GNAME DeclaratorSuffix):
$(GNAME AltDeclaratorSuffixes):
$(GLINK AltDeclaratorSuffix)
$(GLINK AltDeclaratorSuffix) $(I AltDeclaratorSuffixes)

$(GNAME AltDeclaratorSuffix):
$(D [ ])
$(D [) $(ASSIGNEXPRESSION) $(D ])
$(D [) $(GLINK Type) $(D ])

$(GNAME AltFuncDeclaratorSuffix):
$(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT)
$(GLINK TemplateParameters) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT) $(GLINK Constraint)$(OPT)
)
Expand Down

0 comments on commit 6305b15

Please sign in to comment.