Skip to content

Commit

Permalink
Merge pull request #31 from rubberduck-vba/next
Browse files Browse the repository at this point in the history
sync with merged PR's in main repo
  • Loading branch information
retailcoder committed Feb 12, 2016
2 parents 105d146 + f166f79 commit 1653b55
Show file tree
Hide file tree
Showing 8 changed files with 28,963 additions and 26,352 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,8 @@ private void ExecuteQuickFixCommand(object parameter)

private bool CanExecuteQuickFixCommand(object parameter)
{
return !IsBusy && SelectedItem is IInspection;
var quickFix = parameter as CodeInspectionQuickFix;
return !IsBusy && quickFix != null;
}

private bool _canExecuteQuickFixInModule;
Expand Down
34 changes: 23 additions & 11 deletions Rubberduck.Parsing/Grammar/VBA.g4
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
* - fixed precompiler directives, which can now be nested. they still can't interfere with other blocks though.
* - optional parameters can be a valueStmt.
* - added support for Octal and Currency literals.
* - implemented proper specs for DATELITERAL.
*
*======================================================================================
*
Expand Down Expand Up @@ -906,14 +907,25 @@ L_SQUARE_BRACKET : '[';
R_SQUARE_BRACKET : ']';


// literals
STRINGLITERAL : '"' (~["\r\n] | '""')* '"';
DATELITERAL : '#' DIGIT+ '/' DIGIT+ '/' DIGIT+ '#';
OCTLITERAL : '&O' [0-8]+ '&'?;
HEXLITERAL : '&H' [0-9A-F]+ '&'?;
SHORTLITERAL : (PLUS|MINUS)? DIGIT+ ('#' | '&' | '@')?;
INTEGERLITERAL : SHORTLITERAL (E SHORTLITERAL)?;
DOUBLELITERAL : (PLUS|MINUS)? DIGIT* '.' DIGIT+ (E SHORTLITERAL)?;
// literals
STRINGLITERAL : '"' (~["\r\n] | '""')* '"';
OCTLITERAL : '&O' [0-8]+ '&'?;
HEXLITERAL : '&H' [0-9A-F]+ '&'?;
SHORTLITERAL : (PLUS|MINUS)? DIGIT+ ('#' | '&' | '@')?;
INTEGERLITERAL : SHORTLITERAL (E SHORTLITERAL)?;
DOUBLELITERAL : (PLUS|MINUS)? DIGIT* '.' DIGIT+ (E SHORTLITERAL)?;
DATELITERAL : '#' DATEORTIME '#';
fragment DATEORTIME : DATEVALUE WS? TIMEVALUE | DATEVALUE | TIMEVALUE;
fragment DATEVALUE : DATEVALUEPART DATESEPARATOR DATEVALUEPART (DATESEPARATOR DATEVALUEPART)?;
fragment DATEVALUEPART : DIGIT+ | MONTHNAME;
fragment DATESEPARATOR : WS? [/,-]? WS?;
fragment MONTHNAME : ENGLISHMONTHNAME | ENGLISHMONTHABBREVIATION;
fragment ENGLISHMONTHNAME : J A N U A R Y | F E B R U A R Y | M A R C H | A P R I L | M A Y | J U N E | A U G U S T | S E P T E M B E R | O C T O B E R | N O V E M B E R | D E C E M B E R;
fragment ENGLISHMONTHABBREVIATION : J A N | F E B | M A R | A P R | J U N | J U L | A U G | S E P | O C T | N O V | D E C;
fragment TIMEVALUE : DIGIT+ AMPM | DIGIT+ TIMESEPARATOR DIGIT+ (TIMESEPARATOR DIGIT+)? AMPM?;
fragment TIMESEPARATOR : WS? (':' | '.') WS?;
fragment AMPM : WS? (A M | P M | A | P);
// whitespace, line breaks, comments, ...
LINE_CONTINUATION : [ \t]+ '_' '\r'? '\n' -> skip;
Expand All @@ -926,9 +938,9 @@ IDENTIFIER : (~[\[\]\(\)\r\n\t.,'"|!@#$%^&*-+:=; ])+ | L_SQUARE_BRACKET (~[!\]\
// letters
fragment LETTER : [a-zA-Z_äöüÄÖÜ];
fragment LETTER : [a-zA-Z_äöüÄÖÜ];
fragment DIGIT : [0-9];
fragment LETTERORDIGIT : [a-zA-Z0-9_äöüÄÖÜ];
fragment LETTERORDIGIT : [a-zA-Z0-9_äöüÄÖÜ];
// case insensitive chars
fragment A:('a'|'A');
Expand Down Expand Up @@ -956,4 +968,4 @@ fragment V:('v'|'V');
fragment W:('w'|'W');
fragment X:('x'|'X');
fragment Y:('y'|'Y');
fragment Z:('z'|'Z');
fragment Z:('z'|'Z');

0 comments on commit 1653b55

Please sign in to comment.