Merge branch 'format-work' of https://github.com/callumenator/Dscanner into callumenator-format-work

Conflicts:
	formatter.d
This commit is contained in:
Hackerpilot 2014-06-11 13:32:24 -07:00
commit f4525cad93
3 changed files with 3869 additions and 761 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1182,6 +1182,8 @@ public:
}
/** */ Token name;
/** */ Initializer initializer;
/** */ TypeSuffix[] cstyle;
mixin OpEquals;
}
@ -2164,6 +2166,8 @@ public:
/** */ Token name;
/** */ bool vararg;
/** */ AssignExpression default_;
/** */ TypeSuffix[] cstyle;
mixin OpEquals;
}

View File

@ -1908,11 +1908,20 @@ class ClassFive(A, B) : Super if (someTest()) {}}c;
auto id = expect(tok!"identifier");
if (id is null) return null;
node.name = *id;
if (currentIsOneOf(tok!"[", tok!"*"))
if (currentIs(tok!"[")) // dmd doesn't accept pointer after identifier
{
error("C-style variable declarations are not supported.");
warn("C-style array declaration.");
TypeSuffix[] typeSuffixes;
while (moreTokens() && currentIs(tok!"["))
{
auto suffix = parseTypeSuffix();
if (suffix !is null)
typeSuffixes ~= suffix;
else
return null;
}
node.cstyle = ownArray(typeSuffixes);
}
if (currentIs(tok!"="))
{
advance();
@ -3937,7 +3946,7 @@ invariant() foo();
* Parses a Parameter
*
* $(GRAMMAR $(RULEDEF parameter):
* $(RULE parameterAttribute)* $(RULE type) ($(LITERAL Identifier)? $(LITERAL '...') | ($(LITERAL Identifier)? ($(LITERAL '=') $(RULE assignExpression))?))?
* $(RULE parameterAttribute)* $(RULE type) (($(LITERAL Identifier) $(RULE typeSuffix)*)? $(LITERAL '...') | ($(LITERAL Identifier)? ($(LITERAL '=') $(RULE assignExpression))?))?
* ;)
*/
Parameter parseParameter()
@ -3969,6 +3978,19 @@ invariant() foo();
advance();
node.default_ = parseAssignExpression();
}
else if (currentIs(tok!"["))
{
TypeSuffix[] typeSuffixes;
while(moreTokens() && currentIs(tok!"["))
{
auto suffix = parseTypeSuffix();
if (suffix !is null)
typeSuffixes ~= suffix;
else
return null;
}
node.cstyle = ownArray(typeSuffixes);
}
}
else if (currentIs(tok!"..."))
{