Like typedef alias supports multiple declarators. aliasDeclaration: 'alias' (aliasInitializer (',' aliasInitializer)* | type declarator (',' declarator)*) ';' Also declarator supports initializer, but alias doesn't. declarator: Identifier ('=' initializer)? ; alias int a=1; Error: alias cannot have initializer