Commit bde279f2 authored by david_v's avatar david_v
Browse files

2003-08-26 Valentin David <valentin@lrde.epita.fr>

	* lib/cxx/TemplateParametersOverlays.str,
	* lib/cxx/TemplateDeclarationsOverlays.str,
	* lib/cxx/SpecifiersOverlays.str,
	* lib/cxx/SimpleTypeSpecifiersOverlays.str,
	* lib/cxx/NamespacesOverlays.str,
	* lib/cxx/MemberSpecificationsOverlays.str,
	* lib/cxx/IdExpressionsOverlays.str,
	* lib/cxx/DeclarationsOverlays.str,
	* lib/cxx/CompoundStatementsOverlays.str,
	* lib/cxx/ClassSpecifiersOverlays.str,
	* lib/cxx/BaseSpecifiersOverlays.str,
	* lib/cxx/Makefile.am,
	* lib/prelude/Overlays.str,
	* lib/prelude/Layouts.str: Delete.
	* lib/prelude/Makefile.am,
	* lib/Makefile.am: Update.

	* test/disambiguate/test.test: Disambiguate once only.

	* test/disambiguate/enum-04.detcc: Fix.

	* src/disamb/disambiguate/TemplateArguments.str,
	* src/disamb/disambiguate/VariableDefinitionCandidate.str,
	* src/disamb/disambiguate/VariableDefinition.str,
	* src/disamb/disambiguate/VariableDeclaratorCandidate.str,
	* src/disamb/disambiguate/VariableDeclarator.str,
	* src/disamb/disambiguate/TypeDefinitionCandidate.str,
	* src/disamb/disambiguate/TypeDefinition.str,
	* src/disamb/disambiguate/TypeDeclaratorCandidate.str,
	* src/disamb/disambiguate/TypeDeclarator.str,
	* src/disamb/disambiguate/TypeAmbiguityCandidate.str,
	* src/disamb/disambiguate/TypeAmbiguity.str,
	* src/disamb/disambiguate/TemplateTraverseCandidate.str,
	* src/disamb/disambiguate/TemplateTraverse.str,
	* src/disamb/disambiguate/TemplateDefinitionCandidate.str,
	* src/disamb/disambiguate/TemplateDefinition.str,
	* src/disamb/disambiguate/TemplateClassTraverse.str,
	* src/disamb/disambiguate/TemplateClassDefinitionCandidate.str,
	* src/disamb/disambiguate/TemplateClassDefinition.str,
	* src/disamb/disambiguate/SimpleTypeSpecifierCandidate.str,
	* src/disamb/disambiguate/SimpleTypeSpecifier.str,
	* src/disamb/disambiguate/ResolveCompound.str,
	* src/disamb/disambiguate/Resolve.str,
	* src/disamb/disambiguate/PrimaryExpressionCandidate.str,
	* src/disamb/disambiguate/PrimaryExpression.str,
	* src/disamb/disambiguate/Parameter.str,
	* src/disamb/disambiguate/NestedNameSpecifier.str,
	* src/disamb/disambiguate/NamespaceTraverse.str,
	* src/disamb/disambiguate/NamespaceDefinitionCandidate.str,
	* src/disamb/disambiguate/NamespaceDefinition.str,
	* src/disamb/disambiguate/Makefile.am
	* src/disamb/disambiguate/afcxx-disambiguate.str,
	* src/disamb/disambiguate/LocalOrGlobal.str,
	* src/disamb/disambiguate/IfDebug.str,
	* src/disamb/disambiguate/Definition.str,
	* src/disamb/disambiguate/CompoundStatementCandidate.str,
	* src/disamb/disambiguate/CompoundStatement.str,
	* src/disamb/disambiguate/ClassTraverse.str,
	* src/disamb/disambiguate/ClassOrNamespaceTraverse.str,
	* src/disamb/disambiguate/ClassOrNamespaceAmbiguityCandidate.str,
	* src/disamb/disambiguate/ClassDefinitionCandidate.str,
	* src/disamb/disambiguate/ClassDefinition.str,
	* src/disamb/disambiguate/CheckTypeName.str,
	* src/disamb/disambiguate/CheckNamespaceName.str,
	* src/disamb/disambiguate/CheckClassName.str,
	* src/disamb/disambiguate/CheckEnumName.str,
	* src/disamb/disambiguate/BaseTraverseCandidate.str,
	* src/disamb/disambiguate/BaseTraverse.str,
	* src/disamb/disambiguate/Ambiguity.str: Rewrite with concrete syntax.

	* src/disamb/bitfield/afcxx-bitfield.str: Fix.

	* src/disamb/disambiguate/VariableDefinitionCandidate.meta,
	* src/disamb/disambiguate/VariableDefinition.meta,
	* src/disamb/disambiguate/VariableDeclaratorCandidate.meta,
	* src/disamb/disambiguate/VariableDeclarator.meta,
	* src/disamb/disambiguate/TypeDefinitionCandidate.meta,
	* src/disamb/disambiguate/TypeDefinition.meta,
	* src/disamb/disambiguate/TypeDeclaratorCandidate.meta,
	* src/disamb/disambiguate/TypeDeclarator.meta,
	* src/disamb/disambiguate/TypeAmbiguityCandidate.meta,
	* src/disamb/disambiguate/TemplateTraverseCandidate.meta,
	* src/disamb/disambiguate/TemplateTraverse.meta,
	* src/disamb/disambiguate/TemplateDefinitionCandidate.meta,
	* src/disamb/disambiguate/TemplateDefinition.meta,
	* src/disamb/disambiguate/TemplateClassTraverse.meta,
	* src/disamb/disambiguate/TemplateClassDefinitionCandidate.meta,
	* src/disamb/disambiguate/TemplateClassDefinition.meta,
	* src/disamb/disambiguate/TemplateArguments.meta,
	* src/disamb/disambiguate/SimpleTypeSpecifierCandidate.meta,
	* src/disamb/disambiguate/SimpleTypeSpecifier.meta,
	* src/disamb/disambiguate/PrimaryExpressionCandidate.meta,
	* src/disamb/disambiguate/PrimaryExpression.meta,
	* src/disamb/disambiguate/Parameter.meta,
	* src/disamb/disambiguate/NestedNameSpecifier.meta,
	* src/disamb/disambiguate/NamespaceTraverse.meta,
	* src/disamb/disambiguate/NamespaceDefinitionCandidate.meta,
	* src/disamb/disambiguate/NamespaceDefinition.meta,
	* src/disamb/disambiguate/LocalOrGlobal.meta,
	* src/disamb/disambiguate/EnumDefinitionCandidate.meta,
	* src/disamb/disambiguate/EnumDefinition.meta,
	* src/disamb/disambiguate/CompoundStatementCandidate.meta,
	* src/disamb/disambiguate/CompoundStatement.meta,
	* src/disamb/disambiguate/ClassTraverse.meta,
	* src/disamb/disambiguate/ClassOrNamespaceTraverse.meta,
	* src/disamb/disambiguate/ClassOrNamespaceAmbiguityCandidate.meta,
	* src/disamb/disambiguate/ClassDefinitionCandidate.meta,
	* src/disamb/disambiguate/ClassDefinition.meta,
	* src/disamb/disambiguate/CheckTypeName.meta,
	* src/disamb/disambiguate/CheckNamespaceName.meta,
	* src/disamb/disambiguate/CheckEnumName.meta,
	* src/disamb/disambiguate/CheckClassName.meta,
	* src/disamb/disambiguate/BaseTraverseCandidate.meta,
	* src/disamb/disambiguate/BaseTraverse.meta: New.

	* src/disamb/disambiguate/EnumDefinitionCandidate.str,
	* src/disamb/disambiguate/EnumDefinition.str: New.
parent 9ca1af2b
2003-08-26 Valentin David <valentin@lrde.epita.fr>
* lib/cxx/TemplateParametersOverlays.str,
* lib/cxx/TemplateDeclarationsOverlays.str,
* lib/cxx/SpecifiersOverlays.str,
* lib/cxx/SimpleTypeSpecifiersOverlays.str,
* lib/cxx/NamespacesOverlays.str,
* lib/cxx/MemberSpecificationsOverlays.str,
* lib/cxx/IdExpressionsOverlays.str,
* lib/cxx/DeclarationsOverlays.str,
* lib/cxx/CompoundStatementsOverlays.str,
* lib/cxx/ClassSpecifiersOverlays.str,
* lib/cxx/BaseSpecifiersOverlays.str,
* lib/cxx/Makefile.am,
* lib/prelude/Overlays.str,
* lib/prelude/Layouts.str: Delete.
* lib/prelude/Makefile.am,
* lib/Makefile.am: Update.
* test/disambiguate/test.test: Disambiguate once only.
* test/disambiguate/enum-04.detcc: Fix.
* src/disamb/disambiguate/TemplateArguments.str,
* src/disamb/disambiguate/VariableDefinitionCandidate.str,
* src/disamb/disambiguate/VariableDefinition.str,
* src/disamb/disambiguate/VariableDeclaratorCandidate.str,
* src/disamb/disambiguate/VariableDeclarator.str,
* src/disamb/disambiguate/TypeDefinitionCandidate.str,
* src/disamb/disambiguate/TypeDefinition.str,
* src/disamb/disambiguate/TypeDeclaratorCandidate.str,
* src/disamb/disambiguate/TypeDeclarator.str,
* src/disamb/disambiguate/TypeAmbiguityCandidate.str,
* src/disamb/disambiguate/TypeAmbiguity.str,
* src/disamb/disambiguate/TemplateTraverseCandidate.str,
* src/disamb/disambiguate/TemplateTraverse.str,
* src/disamb/disambiguate/TemplateDefinitionCandidate.str,
* src/disamb/disambiguate/TemplateDefinition.str,
* src/disamb/disambiguate/TemplateClassTraverse.str,
* src/disamb/disambiguate/TemplateClassDefinitionCandidate.str,
* src/disamb/disambiguate/TemplateClassDefinition.str,
* src/disamb/disambiguate/SimpleTypeSpecifierCandidate.str,
* src/disamb/disambiguate/SimpleTypeSpecifier.str,
* src/disamb/disambiguate/ResolveCompound.str,
* src/disamb/disambiguate/Resolve.str,
* src/disamb/disambiguate/PrimaryExpressionCandidate.str,
* src/disamb/disambiguate/PrimaryExpression.str,
* src/disamb/disambiguate/Parameter.str,
* src/disamb/disambiguate/NestedNameSpecifier.str,
* src/disamb/disambiguate/NamespaceTraverse.str,
* src/disamb/disambiguate/NamespaceDefinitionCandidate.str,
* src/disamb/disambiguate/NamespaceDefinition.str,
* src/disamb/disambiguate/Makefile.am
* src/disamb/disambiguate/afcxx-disambiguate.str,
* src/disamb/disambiguate/LocalOrGlobal.str,
* src/disamb/disambiguate/IfDebug.str,
* src/disamb/disambiguate/Definition.str,
* src/disamb/disambiguate/CompoundStatementCandidate.str,
* src/disamb/disambiguate/CompoundStatement.str,
* src/disamb/disambiguate/ClassTraverse.str,
* src/disamb/disambiguate/ClassOrNamespaceTraverse.str,
* src/disamb/disambiguate/ClassOrNamespaceAmbiguityCandidate.str,
* src/disamb/disambiguate/ClassDefinitionCandidate.str,
* src/disamb/disambiguate/ClassDefinition.str,
* src/disamb/disambiguate/CheckTypeName.str,
* src/disamb/disambiguate/CheckNamespaceName.str,
* src/disamb/disambiguate/CheckClassName.str,
* src/disamb/disambiguate/CheckEnumName.str,
* src/disamb/disambiguate/BaseTraverseCandidate.str,
* src/disamb/disambiguate/BaseTraverse.str,
* src/disamb/disambiguate/Ambiguity.str: Rewrite with concrete syntax.
* src/disamb/bitfield/afcxx-bitfield.str: Fix.
* src/disamb/disambiguate/VariableDefinitionCandidate.meta,
* src/disamb/disambiguate/VariableDefinition.meta,
* src/disamb/disambiguate/VariableDeclaratorCandidate.meta,
* src/disamb/disambiguate/VariableDeclarator.meta,
* src/disamb/disambiguate/TypeDefinitionCandidate.meta,
* src/disamb/disambiguate/TypeDefinition.meta,
* src/disamb/disambiguate/TypeDeclaratorCandidate.meta,
* src/disamb/disambiguate/TypeDeclarator.meta,
* src/disamb/disambiguate/TypeAmbiguityCandidate.meta,
* src/disamb/disambiguate/TemplateTraverseCandidate.meta,
* src/disamb/disambiguate/TemplateTraverse.meta,
* src/disamb/disambiguate/TemplateDefinitionCandidate.meta,
* src/disamb/disambiguate/TemplateDefinition.meta,
* src/disamb/disambiguate/TemplateClassTraverse.meta,
* src/disamb/disambiguate/TemplateClassDefinitionCandidate.meta,
* src/disamb/disambiguate/TemplateClassDefinition.meta,
* src/disamb/disambiguate/TemplateArguments.meta,
* src/disamb/disambiguate/SimpleTypeSpecifierCandidate.meta,
* src/disamb/disambiguate/SimpleTypeSpecifier.meta,
* src/disamb/disambiguate/PrimaryExpressionCandidate.meta,
* src/disamb/disambiguate/PrimaryExpression.meta,
* src/disamb/disambiguate/Parameter.meta,
* src/disamb/disambiguate/NestedNameSpecifier.meta,
* src/disamb/disambiguate/NamespaceTraverse.meta,
* src/disamb/disambiguate/NamespaceDefinitionCandidate.meta,
* src/disamb/disambiguate/NamespaceDefinition.meta,
* src/disamb/disambiguate/LocalOrGlobal.meta,
* src/disamb/disambiguate/EnumDefinitionCandidate.meta,
* src/disamb/disambiguate/EnumDefinition.meta,
* src/disamb/disambiguate/CompoundStatementCandidate.meta,
* src/disamb/disambiguate/CompoundStatement.meta,
* src/disamb/disambiguate/ClassTraverse.meta,
* src/disamb/disambiguate/ClassOrNamespaceTraverse.meta,
* src/disamb/disambiguate/ClassOrNamespaceAmbiguityCandidate.meta,
* src/disamb/disambiguate/ClassDefinitionCandidate.meta,
* src/disamb/disambiguate/ClassDefinition.meta,
* src/disamb/disambiguate/CheckTypeName.meta,
* src/disamb/disambiguate/CheckNamespaceName.meta,
* src/disamb/disambiguate/CheckEnumName.meta,
* src/disamb/disambiguate/CheckClassName.meta,
* src/disamb/disambiguate/BaseTraverseCandidate.meta,
* src/disamb/disambiguate/BaseTraverse.meta: New.
* src/disamb/disambiguate/EnumDefinitionCandidate.str,
* src/disamb/disambiguate/EnumDefinition.str: New.
2003-08-01 Valentin David <valentin@lrde.epita.fr>
* src/disamb/namespace/NamespaceDefinitionCut.str,
......
include $(top_srcdir)/config/Makefile.xt
SUBDIRS = cxx prelude
SUBDIRS = prelude
BOOTCLEAN_SUBDIRS = $(SUBDIRS)
module BaseSpecifiersOverlays
imports
AsFix2-Syntax
overlays
// The following overlay stands for this rule:
// "::"? NestedNameSpecifier? ClassName -> BaseSpecifier
base-specifier-1-overlay (x0, l0, x1, l1, x2, as) =
appl (prod ([cf (opt (sort ("Dummy0"))),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier"))),
cf (opt (layout)),
cf (sort ("ClassName"))],
cf (sort ("BaseSpecifier")),
attrs (as)),
[x0, l0, x1, l1, x2])
// The following overlay stands for this rule:
// "virtual" AccessSpecifier? "::"? NestedNameSpecifier? ClassName -> BaseSpecifier
base-specifier-2-overlay (l0, x0, l1, x1, l2, x2, l3, x3, as) =
appl (prod ([lit ("virtual"),
cf (opt (layout)),
cf (opt (sort ("AccessSpecifier"))),
cf (opt (layout)),
cf (opt (sort ("Dummy0"))),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier"))),
cf (opt (layout)),
cf (sort ("ClassName"))],
cf (sort ("BaseSpecifier")),
attrs (as)),
[appl (prod ([char-class ([118]),
char-class ([105]),
char-class ([114]),
char-class ([116]),
char-class ([117]),
char-class ([97]),
char-class ([108])],
lit ("virtual"),
no-attrs),
[118, 105, 114, 116, 117, 97, 108]),
l0, x0, l1, x1, l2, x2, l3, x3])
// The following overlay stands for this rule:
// AccessSpecifier "virtual"? "::"? NestedNameSpecifier? ClassName -> BaseSpecifier
base-specifier-3-overlay (x0, l0, x1, l1, x2, l2, x3, l3, x4, as) =
appl (prod ([cf (sort ("AcessSpecifier")),
cf (opt (layout)),
cf (opt (sort ("Dummy7"))),
cf (opt (layout)),
cf (opt (sort ("Dummy0"))),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier"))),
cf (opt (layout)),
cf (sort ("ClassName"))],
cf (sort ("BaseSpecifier")),
attrs (as)),
[x0, l0, x1, l1, x2, l2, x3, l3, x4])
// The following overlay may be used where one wants to match at the same time
// base-specifier-2-overlay and base-specifier-3-overlay:
// "virtual" AccessSpecifier? "::"? NestedNameSpecifier? ClassName -> BaseSpecifier
// AccessSpecifier "virtual"? "::"? NestedNameSpecifier? ClassName -> BaseSpecifier
base-specifier-23-overlay (va0-r, va0, l0, va1-r, va1, l1, x0, l2, x1, l3, x2, as) =
appl (prod ([va0-r,
cf (opt (layout)),
va1-r,
cf (opt (layout)),
cf (opt (sort ("Dummy0"))),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier"))),
cf (opt (layout)),
cf (sort ("ClassName"))],
cf (sort ("BaseSpecifier")),
attrs (as)),
[va0, l0, va1, l1, x0, l2, x1, l3, x2])
module ClassSpecifiersOverlays
imports
AsFix2-Syntax
overlays
class-head-1-overlay (x0, l0, x1, l1, x2, as) =
appl (prod ([cf (sort ("ClassKey")),
cf (opt (layout)),
cf (opt (sort ("Identifier"))),
cf (opt (layout)),
cf (opt (sort ("BaseClause")))],
cf (sort ("ClassHead")),
attrs (as)),
[x0, l0, x1, l1, x2])
class-head-2-overlay (x0, l0, x1, l1, x2, l2, x3, as) =
appl (prod ([cf (sort ("ClassKey")),
cf (opt (layout)),
cf (sort ("NestedNameSpecifier")),
cf (opt (layout)),
cf (sort ("Identifier")),
cf (opt (layout)),
cf (opt (sort ("BaseClause")))],
cf (sort ("ClassHead")),
attrs (as)),
[x0, l0, x1, l1, x2, l2, x3])
class-head-3-overlay (x0, l0, x1, l1, x2, l2, x3, as) =
appl (prod ([cf (sort ("ClassKey")),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier"))),
cf (opt (layout)),
cf (sort ("TemplateId")),
cf (opt (layout)),
cf (opt (sort ("BaseClause")))],
cf (sort ("ClassHead")),
attrs (as)),
[x0, l0, x1, l1, x2, l2, x3])
class-specifier-overlay (x0, l0, l1, x1, l2, as) =
appl (prod ([cf (sort ("ClassHead")),
cf (opt (layout)),
lit ("{"),
cf (opt (layout)),
cf (opt (sort ("MemberSpecification"))),
cf (opt (layout)),
lit ("}")],
cf (sort ("ClassSpecifier")),
attrs (as)),
[x0, l0,
appl (prod ([char-class ([123])], lit ("{"), no-attrs), [123]),
l1, x1, l2,
appl (prod ([char-class ([125])], lit ("}"), no-attrs), [125])])
module CompoundStatementsOverlays
imports
lib
imports
AsFix2-Syntax
overlays
compound-statement-overlay (l0, x0, l1, as) =
appl (prod ([lit ("{"),
cf (opt (layout)),
cf (opt (sort ("StatementSeq"))),
cf (opt (layout)),
lit ("}")],
cf (sort ("CompoundStatement")),
as),
[appl (prod ([char-class ([123])], lit ("{"), no-attrs), [123]),
l0, x0, l1,
appl (prod ([char-class ([125])], lit ("}"), no-attrs), [125])])
module DeclarationsOverlays
imports
AsFix2-Syntax
overlays
declaration-1-overlay (x, as) =
appl (prod ([cf (sort ("BlockDeclaration"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
declaration-2-overlay (x, as) =
appl (prod ([cf (sort ("FunctionDefinition"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
declaration-3-overlay (x, as) =
appl (prod ([cf (sort ("TemplateDeclaration"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
declaration-4-overlay (x, as) =
appl (prod ([cf (sort ("ExplicitInstantiation"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
declaration-5-overlay (x, as) =
appl (prod ([cf (sort ("ExplicitSpecialization"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
declaration-6-overlay (x, as) =
appl (prod ([cf (sort ("LinkageSpecification"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
declaration-7-overlay (x, as) =
appl (prod ([cf (sort ("NamespaceDefinition"))],
cf (sort ("Declaration")),
attrs (as)),
[x])
block-declaration-1-overlay (x, as) =
appl (prod ([cf (sort ("SimpleDeclaration"))],
cf (sort ("BlockDeclaration")),
attrs (as)),
[x])
block-declaration-2-overlay (x, as) =
appl (prod ([cf (sort ("AsmDefinition"))],
cf (sort ("BlockDeclaration")),
attrs (as)),
[x])
block-declaration-3-overlay (x, as) =
appl (prod ([cf (sort ("NamespaceAliasDefinition"))],
cf (sort ("BlockDeclaration")),
attrs (as)),
[x])
block-declaration-4-overlay (x, as) =
appl (prod ([cf (sort ("UsingDeclaration"))],
cf (sort ("BlockDeclaration")),
attrs (as)),
[x])
block-declaration-5-overlay (x, as) =
appl (prod ([cf (sort ("UsingDirective"))],
cf (sort ("BlockDeclaration")),
attrs (as)),
[x])
simple-declaration-overlay (x0, l0, x1, l1, as) =
appl (prod ([cf (opt (sort ("DeclSpecifierSeq"))),
cf (opt (layout)),
cf (opt (sort ("InitDeclaratorList"))),
cf (opt (layout)),
lit (";")],
cf (sort ("SimpleDeclaration")),
attrs (as)),
[x0, l0, x1, l1,
appl (prod ([char-class ([59])], lit (";"), no-attrs), [59])])
module IdExpressionsOverlays
imports
AsFix2-Syntax
overlays
qualified-id-overlay (x0, l0, x1, l1, x2, l2, x3, as) =
appl (prod ([cf (opt (sort ("Dummy0"))),
cf (opt (layout)),
cf (sort ("NestedNameSpecifier")),
cf (opt (layout)),
cf (opt (sort ("Dummy5"))),
cf (opt (layout)),
cf (sort ("UnqualifiedId"))],
cf (sort ("QualifiedId")),
as),
[x0, l0, x1, l1, x2, l2, x3])
nested-name-specifier-overlay (x0, l0, l1, x1, as) =
appl (prod ([cf (sort ("ClassOrNamespaceName")),
cf (opt (layout)),
lit ("::"),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier")))],
cf (sort ("NestedNameSpecifier")),
as),
[x0, l0,
appl (prod ([char-class ([58]), char-class ([58])], lit ("::"), no-attrs), [58, 58]),
l1, x1])
include $(top_srcdir)/config/Makefile.xt
EXTRA_DIST = \
ClassSpecifiersOverlays.str \
DeclarationsOverlays.str \
SimpleTypeSpecifiersOverlays.str \
SpecifiersOverlays.str \
TemplateDeclarationsOverlays.str
module MemberSpecificationsOverlays
imports
AsFix2-Syntax
overlays
member-declaration-overlay (x0, l0, x1, l1, as) =
appl (prod ([cf (opt (sort ("DeclSpecifierSeq"))),
cf (opt (layout)),
cf (opt (sort ("MemberDeclaratorList"))),
cf (opt (layout)),
lit (";")],
cf (sort ("MemberDeclaration")),
attrs (as)),
[x0, l0, x1, l1,
appl (prod ([char-class ([59])], lit (";"), no-attrs), [59])])
module NamespacesOverlays
imports
AsFix2-Syntax
overlays
original-namespace-definition-overlay (x0, as) =
appl (prod ([cf (sort ("OriginalNamespaceDefinition"))],
cf (sort ("NamedNamespaceDefinition")),
attrs (as)),
[x0])
extension-namespace-definition-overlay (x0, as) =
appl (prod ([cf (sort ("ExtensionNamespaceDefinition"))],
cf (sort ("NamedNamespaceDefinition")),
attrs (as)),
[x0])
namespace-overlay (l0, x0, l1, l2, x1, l3, as) =
appl (prod ([lit ("namespace"),
cf (opt (layout)),
cf (sort ("Identifier")),
cf (opt (layout)),
lit ("{"),
cf (opt (layout)),
cf (sort ("NamespaceBody")),
cf (opt (layout)),
lit ("}")],
cf (sort ("OriginalNamespaceDefinition")),
attrs (as)),
[appl (prod ([char-class ([110]), char-class ([97]),
char-class ([109]), char-class ([101]),
char-class ([115]), char-class ([112]),
char-class ([97]), char-class ([99]),
char-class ([101])],
lit("namespace"),
no-attrs),
[110, 97, 109, 101, 115, 112, 97, 99, 101]),
l0, x0, l1,
appl (prod ([char-class ([123])], lit("{"), no-attrs), [123]),
l2, x1, l3,
appl (prod ([char-class ([125])], lit ("}"), no-attrs), [125])])
namespace-1-overlay (l0, x0, l1, l2, x1, l3, as) =
appl (prod ([lit ("namespace"),
cf (opt (layout)),
cf (sort ("OriginalNamespaceName")),
cf (opt (layout)),
lit ("{"),
cf (opt (layout)),
cf (sort ("NamespaceBody")),
cf (opt (layout)),
lit ("}")],
cf (sort ("ExtensionNamespaceDefinition")),
attrs (as)),
[appl (prod ([char-class ([110]), char-class ([97]),
char-class ([109]), char-class ([101]),
char-class ([115]), char-class ([112]),
char-class ([97]), char-class ([99]),
char-class ([101])],
lit("namespace"),
no-attrs),
[110, 97, 109, 101, 115, 112, 97, 99, 101]),
l0, x0, l1,
appl (prod ([char-class ([123])], lit("{"), no-attrs), [123]),
l2, x1, l3,
appl (prod ([char-class ([125])], lit ("}"), no-attrs), [125])])
module SimpleTypeSpecifiersOverlays
imports
AsFix2-Syntax
overlays
simple-type-specifier-overlay (x, l, x', l', x'', as) =
appl (prod ([cf (opt (sort ("Dummy0"))),
cf (opt (layout)),
cf (opt (sort ("NestedNameSpecifier"))),
cf (opt (layout)),
cf (sort ("TypeName"))],
cf (sort ("SimpleTypeSpecifier")),
attrs (as)),
[x, l, x', l', x''])
module SpecifiersOverlays
imports
AsFix2-Syntax
overlays
decl-specifier-seq-overlay (x, as) =
appl (prod ([cf (iter (sort ("DeclSpecifier")))],
cf (sort ("DeclSpecifierSeq")),
attrs (as)),
x)
decl-specifier-seq-overlay-amb (xs, as) =
appl (prod ([cf (iter (sort ("DeclSpecifier")))],
cf (sort ("DeclSpecifierSeq")),
attrs (as)),
[amb (xs)])
module TemplateDeclarationsOverlays
imports
AsFix2-Syntax
overlays
template-declaration-overlay (x0, l0, l1, l2, x1, l3, l4, x2, as) =
appl (prod ([cf (opt (sort ("Dummy2"))),
cf (opt (layout)),
lit ("template"),
cf (opt (layout)),
lit ("<"),
cf (opt (layout)),
cf (sort ("TemplateParameterList")),
cf (opt (layout)),
lit (">"),
cf (opt (layout)),
cf (sort ("Declaration"))],
cf (sort ("TemplateDeclaration")),
attrs (as)),
[x0, l0,
appl (prod ([char-class ([116]), char-class ([101]), char-class ([109]),
char-class ([112]), char-class ([108]), char-class ([97]),
char-class ([116]), char-class ([101])],
lit ("template"),
no-attrs),
[116, 101, 109, 112, 108, 97, 116, 101]),
l1,
appl (prod ([char-class ([60])], lit ("<"), no-attrs), [60]),
l2, x1, l3,
appl (prod ([char-class ([62])], lit (">"), no-attrs), [62]),
l4, x2])
module TemplateParametersOverlays
imports
AsFix2-Syntax
overlays
template-parameter-cl-overlay (l0, x0, as) =
appl (prod ([lit ("class"),
cf (opt (layout)),
cf (opt (sort ("Identifier")))],
cf (sort ("TemplateParameter")),
attrs (as)),
[appl (prod ([char-class ([99]), char-class ([108]),
char-class ([97]), char-class ([115]),
char-class ([115])],
lit("class"),
no-attrs),
[99, 108, 97, 115, 115]),
l0, x0])
template-parameter-cl-def-overlay (l0, x0, l1, x1, as) =
appl (prod ([lit ("class"),
cf (opt (layout)),
cf (opt (sort ("Identifier"))),
cf (opt (layout)),
lit ("="),
cf (sort ("TypeId"))],
cf (sort ("TemplateParameter")),
attrs (as)),
[appl (prod ([char-class ([99]), char-class ([108]),