From: Jan P. <jp...@us...> - 2006-10-21 14:02:43
|
Update of /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/core/parser In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv29309/src/org/epic/core/parser Modified Files: Tag: stable PerlLexerBase.java perl.g Log Message: Fixed bug [ 1581076 ] y=> in argument list breaks syntax highlighting. Index: PerlLexerBase.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/core/parser/PerlLexerBase.java,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -d -r1.3 -r1.3.2.1 --- PerlLexerBase.java 27 Dec 2005 02:02:33 -0000 1.3 +++ PerlLexerBase.java 21 Oct 2006 14:02:39 -0000 1.3.2.1 @@ -21,8 +21,9 @@ protected boolean slashRegexp; protected boolean glob; protected boolean afterColon; - protected boolean afterArrow; + protected boolean afterArrow; protected boolean afterSub; + protected boolean notOper; protected boolean format; protected boolean proto; Index: perl.g =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/core/parser/perl.g,v retrieving revision 1.8.2.5 retrieving revision 1.8.2.6 diff -u -d -r1.8.2.5 -r1.8.2.6 --- perl.g 18 Oct 2006 17:21:15 -0000 1.8.2.5 +++ perl.g 21 Oct 2006 14:02:39 -0000 1.8.2.6 @@ -154,7 +154,9 @@ }; SUBST_OR_MATCH_OR_WORD // this disambiguation rule disfavours EXPRs too much :-( - : { !afterArrow }? (("tr" | 's' | 'y') ~('a'..'z' | '0'..'9' | '_' | '}' | '\r' | '\n')) + : { !afterArrow }? ((SUBST_OR_MATCH_OPER | 'x') (WORD_CHAR | ((WS_CHAR)* "=>"))) + => { notOper = true; } t1:WORD { $setToken(t1); } + | { !afterArrow }? ("tr" | 's' | 'y') => SUBST_EXPR { $setType(PerlTokenTypes.SUBST_EXPR); } | { !afterArrow }? (("qq" | "qx" | "qw" | "qr" | 'm' | 'q') ~('a'..'z' | '0'..'9' | '_' | '}' | '\r' | '\n' | ' ')) => MATCH_EXPR { $setType(PerlTokenTypes.MATCH_EXPR); } @@ -166,7 +168,7 @@ glob = false; $setToken(createOperatorToken(PerlTokenTypes.OPER_COLON, ":")); } - | t:WORD { $setToken(t); } + | t3:WORD { $setToken(t3); } ; protected SUBST_EXPR @@ -418,7 +420,7 @@ glob = str.equals("unlink"); $setType(PerlTokenTypes.KEYWORD2); } - else if (OPERATORS.contains(str) && !afterArrow) + else if (OPERATORS.contains(str) && !afterArrow && !notOper) { glob = false; $setToken(createOperatorToken(PerlTokenTypes.OPER_OTHER, str)); @@ -427,7 +429,7 @@ else glob = false; slashRegexp = !afterArrow; - qmarkRegexp = afterArrow = false; + qmarkRegexp = afterArrow = notOper = false; } ; @@ -450,6 +452,14 @@ : ('A'..'Z' | 'a'..'z' | '0'..'9' | '_' | ':') ; +protected WS_CHAR + : (' ' | '\t' | '\n' | '\r') + ; + +protected SUBST_OR_MATCH_OPER + : ("tr" | "qq" | "qx" | "qw" | "qr" | 's' | 'y' | 'm' | 'q') + ; + OTHER: ~('\uFFFF'); protected KEYWORD1: ; |