[LanguageTool] SF.net SVN: languagetool:[6369] trunk/JLanguageTool/src/java/org/ languagetool

2012-01-29 Thread dnaber
Revision: 6369
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6369view=rev
Author:   dnaber
Date: 2012-01-29 11:33:53 + (Sun, 29 Jan 2012)
Log Message:
---
small code cleanup

Modified Paths:
--
trunk/JLanguageTool/src/java/org/languagetool/Main.java
trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java

Modified: trunk/JLanguageTool/src/java/org/languagetool/Main.java
===
--- trunk/JLanguageTool/src/java/org/languagetool/Main.java 2012-01-29 
06:14:32 UTC (rev 6368)
+++ trunk/JLanguageTool/src/java/org/languagetool/Main.java 2012-01-29 
11:33:53 UTC (rev 6369)
@@ -164,22 +164,16 @@
 boolean oneTime = false;
 if (!-.equals(filename)) {
   if (autoDetect) {
-  Language language = detectLanguageOfFile(filename, encoding);
-  if (language == null) {
-  System.err.println(Could not detect language well enough, using 
English);
-  language = Language.ENGLISH;
-  }
-  try {
-  changeLanguage(language, motherTongue, disabledRules, 
enabledRules);
-  } catch (SAXException e) {
-  e.printStackTrace();
-  } catch (ParserConfigurationException e) {
-  e.printStackTrace();
-  }
-  System.out.println(Using  + language.getName() +  for file  + 
filename);
+Language language = detectLanguageOfFile(filename, encoding);
+if (language == null) {
+  System.err.println(Could not detect language well enough, using 
English);
+  language = Language.ENGLISH;
+}
+changeLanguage(language, motherTongue, disabledRules, enabledRules);
+System.out.println(Using  + language.getName() +  for file  + 
filename);
   }
   final File file = new File(filename);
-  // run once on file if the file size  MAXFILESIZE or
+  // run once on file if the file size  MAX_FILE_SIZE or
   // when we use the bitext mode (we use a bitext reader
   // instead of a direct file access)
   oneTime = file.length()  MAX_FILE_SIZE || bitextMode;
@@ -256,22 +250,16 @@
   sb.append(line);
   lineCount++;
   // to detect language from the first input line
-  if (lineCount == 1  autoDetect) { 
-  Language language = detectLanguageOfString(line);
-  if (language == null) {
-  System.err.println(Could not detect language well enough, 
using English);
-  language = Language.ENGLISH;
-  }
-  System.out.println(Language used is:  + language.getName());
-  
language.getSentenceTokenizer().setSingleLineBreaksMarksParagraph(
-singleLineBreakMarksParagraph);
-  try {
-  changeLanguage(language, motherTongue, disabledRules, 
enabledRules);
-  } catch (SAXException e) {
-  e.printStackTrace();
-  } catch (ParserConfigurationException e) {
-  e.printStackTrace();
-  }
+  if (lineCount == 1  autoDetect) {
+Language language = detectLanguageOfString(line);
+if (language == null) {
+  System.err.println(Could not detect language well enough, using 
English);
+  language = Language.ENGLISH;
+}
+System.out.println(Language used is:  + language.getName());
+language.getSentenceTokenizer().setSingleLineBreaksMarksParagraph(
+singleLineBreakMarksParagraph);
+changeLanguage(language, motherTongue, disabledRules, 
enabledRules);
   }
   sb.append('\n');
   tmpLineOffset++;
@@ -634,9 +622,10 @@
 }
 return language;
   }
-  
-  private void changeLanguage(Language language, Language motherTongue, 
-  String[] disabledRules, String[] enabledRules ) throws IOException, 
SAXException, ParserConfigurationException {
+
+  private void changeLanguage(Language language, Language motherTongue,
+  String[] disabledRules, String[] enabledRules) {
+try {
   lt = new JLanguageTool(language, motherTongue);
   lt.activateDefaultPatternRules();
   lt.activateDefaultFalseFriendRules();
@@ -644,6 +633,9 @@
   if (verbose) {
 lt.setOutput(System.err);
   }
+} catch (Exception e) {
+  throw new RuntimeException(Could not create LanguageTool instance for 
language  + language, e);
+}
   }
 
 }

Modified: trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
===
--- trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java  
2012-01-29 06:14:32 UTC (rev 6368)
+++ trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java  
2012-01-29 11:33:53 UTC (rev 6369)
@@ -255,13 +255,11 @@
   

[LanguageTool] SF.net SVN: languagetool:[6371] trunk/JLanguageTool/src

2012-01-29 Thread dnaber
Revision: 6371
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6371view=rev
Author:   dnaber
Date: 2012-01-29 12:02:11 + (Sun, 29 Jan 2012)
Log Message:
---
code cleanup: moving methods; re-throwing exceptions instead of just printing 
them

Modified Paths:
--

trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/AtdRuleConverter.java

trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/RuleConverter.java

trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/RuleConverterMain.java

trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/RuleCoverage.java
trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/gui/Main.java

trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/gui/MainMenuBar.java
trunk/JLanguageTool/src/java/org/languagetool/Main.java

Modified: 
trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/AtdRuleConverter.java
===
--- 
trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/AtdRuleConverter.java
   2012-01-29 11:54:14 UTC (rev 6370)
+++ 
trunk/JLanguageTool/src/dev/org/languagetool/dev/conversion/AtdRuleConverter.java
   2012-01-29 12:02:11 UTC (rev 6371)
@@ -41,16 +41,16 @@
 import morfologik.stemming.IStemmer;
 import morfologik.stemming.WordData;
 
-
 public class AtdRuleConverter extends RuleConverter {
 
 private static final Pattern nounInPattern = 
Pattern.compile(NN(?!P|S|\\.));
 private static final Pattern wordReference = 
Pattern.compile((\\d+)); // a word reference, e.g. \1
 private static final Pattern wordReferenceTransform = 
Pattern.compile((\\d+):([^:]+));
 private static final Pattern uppercase = Pattern.compile([A-Z]);
-
+private static final String ENGLISH_DICT = /en/english.dict;
+
 private static IStemmer dictLookup = (DictionaryLookup) loadDictionary();
-
+
 private String avoidMessage = ;
 
 // default constructor
@@ -206,15 +206,14 @@
 /**
  * Takes a HashMap of an AtD rule, and returns a list of lines of XML in 
LT format.
  * 
- * @param rule: HashMap of values like pattern and message
+ * @param ruleObject: HashMap of values like pattern and message
  * @param id: String of rule id
  * @param name: String of rule name
  * 
  * @return list of XML lines
- * 
  */
 @SuppressWarnings(unchecked)
-   @Override
+ @Override
 public ListString ltRuleAsList(Object ruleObject, String id, String 
name, String type) {
 ArrayListHashMapString,String outerList = new 
ArrayListHashMapString,String();
 HashMapString,String mainRule = (HashMapString,String)ruleObject;
@@ -811,26 +810,25 @@
 // changes for later
 private static boolean inDictionary(String word) {
 if (dictLookup == null) {
-dictLookup = (DictionaryLookup) loadDictionary();
+dictLookup = loadDictionary();
 }
 return !dictLookup.lookup(word).isEmpty();
 }
 
 // this should be general, not specific to English
 private static IStemmer loadDictionary() {
-IStemmer dictLookup = null;
-String fileName = /en/english.dict;
-URL url = 
JLanguageTool.getDataBroker().getFromResourceDirAsUrl(fileName);
-File dictFile = null;
+IStemmer dictLookup;
+URL url = 
JLanguageTool.getDataBroker().getFromResourceDirAsUrl(ENGLISH_DICT);
+File dictFile;
 try {
dictFile = new File(url.toURI());
 } catch (URISyntaxException e) {
-   e.printStackTrace();
+   throw new RuntimeException(Could not load  + ENGLISH_DICT, e);
 }
 try {
-dictLookup = new DictionaryLookup(Dictionary.read(dictFile));
+  dictLookup = new DictionaryLookup(Dictionary.read(dictFile));
 } catch (IOException e) {
-e.printStackTrace();
+  throw new RuntimeException(Could not load  + dictFile, e);
 }
 return dictLookup;
 }
@@ -838,23 +836,23 @@
 /**
  * Checks if an element of the AtD pattern has a specific postag.
  * @param word: an element of an AtD pattern; (accepts both .\*\/NN and 
word types)
- * @param postag: a specific postag (no regexes)
+ * @param posTag: a specific postag (no regexes)
  * @return
  */
-public static boolean hasSpecificPosTag(String word, String postag) {
+public static boolean hasSpecificPosTag(String word, String posTag) {
if (dictLookup == null) {
dictLookup = (DictionaryLookup) loadDictionary();
}
if (hasPosTag(word)) {
-   String[] splitWord = word.split(/);
-   if (Pattern.matches(splitWord[1], postag)) {
+   final String[] splitWord = word.split(/);
+   if (Pattern.matches(splitWord[1], posTag)) {

[LanguageTool] SF.net SVN: languagetool:[6372] trunk/JLanguageTool/src/rules/fr/grammar. xml

2012-01-29 Thread dominikoeo
Revision: 6372
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6372view=rev
Author:   dominikoeo
Date: 2012-01-29 13:32:30 + (Sun, 29 Jan 2012)
Log Message:
---
[fr] - fixed false positive in Le contrat est n?\195?\169goci?\195?\169 de 
gr?\195?\169 ?\195?\160 gr?\195?\169.
 - fixed rule R_AVANTAGE which was reporting the same error twice
 - fixed warnings in ant test in rule QUE_AVOIR (some skip=...
   should not have been there).

Modified Paths:
--
trunk/JLanguageTool/src/rules/fr/grammar.xml

Modified: trunk/JLanguageTool/src/rules/fr/grammar.xml
===
--- trunk/JLanguageTool/src/rules/fr/grammar.xml2012-01-29 12:02:11 UTC 
(rev 6371)
+++ trunk/JLanguageTool/src/rules/fr/grammar.xml2012-01-29 13:32:30 UTC 
(rev 6372)
@@ -645,6 +645,7 @@
   tokend/token
   token regexp=yes[’´'‛′‘]/token
   token regexp=yesavantages?/token
+  token negate=yes regexp=yesde|du|d/token !-- avoids 
reporting error twice --
 /pattern
 messageVoulez-vous écrire 
suggestiondavantage/suggestion ?/message
 example type=incorrectJe pense markerd’avantage/marker à cette 
solution./example
@@ -3882,8 +3883,8 @@
   token negate=yes 
regexp=yesplus|moins|de|à|appareil|[’´'‛′‘]//token
   token postag=N . p postag_regexp=yes/
   token regexp=yes skip=2que?/token
-  token postag=V avoir ind.* postag_regexp=yes 
skip=2exception postag=A scope=next//token
-  token postag=V ppa.* s postag_regexp=yes skip=1exception 
postag=V inf scope=next//token
+  token postag=V avoir ind.* postag_regexp=yes skip=2/
+  token postag=V ppa.* s postag_regexp=yes/
 /pattern
 messageSi « \2 » est l’antécédent du relatif « \3 », vérifiez 
l’accord du participe « \5 » en nombre./message
 example type=correctLes documents qu’ils markeront 
achetés/marker./example
@@ -3897,7 +3898,7 @@
   token postag=N . s postag_regexp=yes/
   token regexp=yes skip=2que?/token
   token postag=V avoir ind.* postag_regexp=yes skip=2/
-  token postag=V ppa.* p postag_regexp=yesexception postag=V 
inf scope=next//token
+  token postag=V ppa.* p postag_regexp=yes/
 /pattern
 messageSi « \2 » est l’antécédent du relatif « \3 », vérifiez 
l’accord du participe « \5 » en nombre./message
 example type=correctLe document qu’ils markeront 
acheté/marker./example
@@ -3909,7 +3910,7 @@
   token postag=N f .* postag_regexp=yesexception 
regexp=yesimpression|fois/exception/token
   token regexp=yes skip=2que?/token
   token postag=V avoir ind.* postag_regexp=yes skip=2/
-  token postag=V ppa m .* postag_regexp=yesexception postag=V 
inf scope=next//token
+  token postag=V ppa m .* postag_regexp=yes/token
 /pattern
 messageSi « \2 » est l’antécédent du relatif « \3 », vérifiez 
l’accord du participe « \5 » en genre./message
 example type=correctLa femme que j’markerai 
aidée/marker./example
@@ -3927,7 +3928,7 @@
   token postag=N m .* postag_regexp=yes/
   token regexp=yes skip=2que?/token
   token postag=V avoir ind.* postag_regexp=yes skip=2/
-  token postag=V ppa f .* postag_regexp=yesexception postag=V 
inf scope=next//token
+  token postag=V ppa f .* postag_regexp=yes/token
 /pattern
 messageSi « \2 » est l’antécédent du relatif « \3 », vérifiez 
l’accord du participe « \5 » en genre./message
 example type=correctL’homme que j’markerai 
aidé/marker./example
@@ -19861,12 +19862,13 @@
 /rule
 rule id=ETRE_GRE name=être gré
   pattern mark_to=-1
-token inflected=yes skip=2être/token
+token inflected=yesêtre/token
 tokengré/token
   /pattern
   message« Être gré » est un tour critiqué. Employez 
suggestionsavoir/suggestion./message
   example type=incorrectmarkerêtre/marker gré/example
   example type=correctmarkersavoir gré/marker/example
+  example type=correctLe contrat est négocié de gré à gré./example
 /rule
 rulegroup id=PIRE_ALLER name=pire(-)aller
   rule

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Languagetool-cvs mailing list
Languagetool-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs


[LanguageTool] SF.net SVN: languagetool:[6376] trunk/website/www/ru/index.php

2012-01-29 Thread yakovru
Revision: 6376
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6376view=rev
Author:   yakovru
Date: 2012-01-29 14:17:40 + (Sun, 29 Jan 2012)
Log Message:
---
[ru] New paragraph

Modified Paths:
--
trunk/website/www/ru/index.php

Modified: trunk/website/www/ru/index.php
===
--- trunk/website/www/ru/index.php  2012-01-29 14:08:16 UTC (rev 6375)
+++ trunk/website/www/ru/index.php  2012-01-29 14:17:40 UTC (rev 6376)
@@ -135,11 +135,12 @@
 a href=http://languagetool.wikidot.com/command-line-options;Ключи командной 
строки консольного приложения/a
 
 
-h2Варианты использования/h2a 
href=http://languagetool.wikidot.com/command-line-options;Ключи командной 
строки консольного приложения/li
+h2Примеры интеграции/h2
 ul
 li a href=../usageПримеры программного кода для интеграции с другими 
программами/a/li
 /ul
 
+
 p class=firstparastrongИнтеграция LanguageTool с 
приложениями/strong:/p
 
 ul style=list-style:nonea 
href=http://www.languagetool.org/webstart/web/LanguageTool.jnlp;
@@ -157,12 +158,12 @@
 
 pa href=../forumФорум/a или  a 
href=http://myooo.ru/content/view/83/43/;домашняя страничка расширения для 
OpenOffice.org/LibreOffice/a/p
 
-!--
+
 h2Нужна помощь?/h2
- --
-!--
-p?=show_link(Список известных проблем, issues, 0)?./p
- --a href=http://languagetool.wikidot.com/command-line-options;Ключи 
командной строки консольного приложения/li
+
+p?=show_link(Список известных проблем, ../issues, 0)?./p
+
+
 h2Лицензия и исходный код/h2
 
 pLanguageTool свободно распространятся по лицензии ?=show_link(LGPL, 
http://www.fsf.org/licensing/licenses/lgpl.html#SEC1;, 0)?.

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Languagetool-cvs mailing list
Languagetool-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs


[LanguageTool] SF.net SVN: languagetool:[6377] trunk/JLanguageTool/src/rules/br/grammar. xml

2012-01-29 Thread dominikoeo
Revision: 6377
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6377view=rev
Author:   dominikoeo
Date: 2012-01-29 14:18:11 + (Sun, 29 Jan 2012)
Log Message:
---
[br] detect error in things like *Pep pemp munut* ?\226?\134?\146 Bep pemp 
munut.

Modified Paths:
--
trunk/JLanguageTool/src/rules/br/grammar.xml

Modified: trunk/JLanguageTool/src/rules/br/grammar.xml
===
--- trunk/JLanguageTool/src/rules/br/grammar.xml2012-01-29 14:17:40 UTC 
(rev 6376)
+++ trunk/JLanguageTool/src/rules/br/grammar.xml2012-01-29 14:18:11 UTC 
(rev 6377)
@@ -4538,6 +4538,31 @@
   /rule
 /rulegroup
 
+rulegroup id=PEP_BEP name=bep ha pep
+  rule
+pattern mark_to=-1
+  tokenpep/token
+  token 
regexp=yesgwech|gwezh|segond|munut|eur|deiz|noz|mintin|beure|enderv|abardae|sizhun|miz|kantved|Lun|Merc’her|Yaou|Gwener|Sadorn|Sul|Genver|C’hwevrer|Meurzh|Ebrel|Mae|Even|Mezheven|Gouere|Gouhere|Eost|Gwengolo|Here|Du|Kerdu|Kerzu/token
+/pattern
+messagesuggestionbep/suggestion a vez implijet a-raok un anv 
amazer./message
+example type=incorrectDont a ra amañ markerpep/marker 
Sul./example
+example type=correctDont a ra amañ bep Sul./example
+example type=correctAr pep retañ eo ober se./example
+  /rule
+  rule
+pattern mark_to=-2
+  tokenpep/token
+  token postag=K.* postag_regexp=yes/
+  token 
regexp=yesgwech|gwezh|segond|munut|eur|deiz|noz|mintin|beure|enderv|abardae|sizhun|miz|kantved|Lun|Merc’her|Yaou|Gwener|Sadorn|Sul|Genver|C’hwevrer|Meurzh|Ebrel|Mae|Even|Mezheven|Gouere|Gouhere|Eost|Gwengolo|Here|Du|Kerdu|Kerzu/token
+/pattern
+messagesuggestionbep/suggestion a vez implijet a-raok un anv 
amazer./message
+example type=incorrectDont a ra amañ markerpep/marker eil 
Sul./example
+example type=correctDont a ra amañ bep eil Sul./example
+example type=incorrectmarkerPep/marker pemp munut/example
+example type=correctmarkerBep/marker pemp munut/example
+  /rule
+/rulegroup
+
   /category
   !-- vim: foldmethod=marker foldmarker=category,/category:
   --

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Languagetool-cvs mailing list
Languagetool-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs


[LanguageTool] SF.net SVN: languagetool:[6380] trunk/JLanguageTool/src/rules/br/grammar. xml

2012-01-29 Thread dominikoeo
Revision: 6380
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6380view=rev
Author:   dominikoeo
Date: 2012-01-29 19:14:02 + (Sun, 29 Jan 2012)
Log Message:
---
[br] added rule to find errors such as:
 *Alies am eus debret se* ?\226?\134?\146 Alies em eus debret se.

Modified Paths:
--
trunk/JLanguageTool/src/rules/br/grammar.xml

Modified: trunk/JLanguageTool/src/rules/br/grammar.xml
===
--- trunk/JLanguageTool/src/rules/br/grammar.xml2012-01-29 18:00:59 UTC 
(rev 6379)
+++ trunk/JLanguageTool/src/rules/br/grammar.xml2012-01-29 19:14:02 UTC 
(rev 6380)
@@ -1990,6 +1990,33 @@
 example type=correctPeogwir em eus amzer a-walc’h./example
   /rule
 /rulegroup
+rulegroup id=ADV_E name=adverb + e
+  rule
+pattern mark_from=1 mark_to=-1
+  token postag=Aexceptiona-walc’h/exception/token
+  token regexp=yesa[mz]|ac’h/token
+  token regexp=yesp?eus|[bp]oa?/token
+/pattern
+messageLakaet e vez a rannig verb «e» goude an adverb. Ha fellout a 
rae deoc’h skrivañ suggestionmatch no=2 regexp_match=.(.*) 
regexp_replace=e$1//suggestion?/message
+example type=incorrectAlies markeram/marker eus debret 
se./example
+example type=correctAlies em eus debret se./example
+example type=correctAmzer a-walc’h am eus./example
+  /rule
+/rulegroup
+rulegroup id=ARAOGENN_E name=araogenn + e
+  rule
+pattern mark_from=3 mark_to=-1
+  token postag=SENT_START/
+  token postag=P/
+  token postag=N.* postag_regexp=yes/
+  token regexp=yesa[mz]|ac’h/token
+  token regexp=yesp?eus|[bp]oa?/token
+/pattern
+messageLakaet e vez a rannig verb «e» goude ar ranadenn dieeun. Ha 
fellout a rae deoc’h skrivañ suggestionmatch no=4 regexp_match=.(.*) 
regexp_replace=e$1//suggestion?/message
+example type=incorrectE Breizh markeram/marker eus kavet 
se./example
+example type=correctE Breizh markerem/marker eus kavet 
se./example
+  /rule
+/rulegroup
 
   /category
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Languagetool-cvs mailing list
Languagetool-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs


[LanguageTool] SF.net SVN: languagetool:[6381] trunk/JLanguageTool/src/test/org/ languagetool/rules/patterns/PatternRuleTest.java

2012-01-29 Thread dominikoeo
Revision: 6381
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6381view=rev
Author:   dominikoeo
Date: 2012-01-29 22:23:46 + (Sun, 29 Jan 2012)
Log Message:
---
- added another sanity check on grammar rules in ant test 
  to find negate=yes with empty strings.

Modified Paths:
--

trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java

Modified: 
trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java
===
--- 
trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java
   2012-01-29 19:14:02 UTC (rev 6380)
+++ 
trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java
   2012-01-29 22:23:46 UTC (rev 6381)
@@ -120,6 +120,7 @@
   element.getString(),
   element.isRegularExpression(),
   element.getCaseSensitive(),
+  element.getNegation(),
   element.isInflected(),
   lang, rule.getId() + : + rule.getSubId());
 
@@ -128,8 +129,9 @@
   element.getPOStag() == null ?  : element.getPOStag(),
   element.isPOStagRegularExpression(),
   element.getCaseSensitive(),
+  element.getPOSNegation(),
   false,
-  lang, rule.getId() + : + rule.getSubId() +  (exception in POS 
tag) );
+  lang, rule.getId() + : + rule.getSubId() +  (POS tag));
 
 ListElement exceptionElements = new ArrayListElement();
 if (element.getExceptionList() != null) {
@@ -138,6 +140,7 @@
 if (exception.hasNextException()  element.getSkipNext() == 0) {
   System.err.println(The  + lang.toString() +  rule: 
   + rule.getId() + : + rule.getSubId()
+  +  (exception in token [ + i + ])
   +  in token [ + i + ]
   +  has no skip=\...\ and yet contains scope=\next\
   +  so the exception never applies. 
@@ -152,18 +155,20 @@
 exception.getString(),
 exception.isRegularExpression(),
 exception.getCaseSensitive(),
+exception.getNegation(),
 exception.isInflected(),
 lang,
-rule.getId() + : + rule.getSubId() +  (exception in token 
[ + i + ]) );
+rule.getId() + : + rule.getSubId()+  (exception in token [ 
+ i + ]));
 }
 // Check postag=... of exception is consistent with 
postag_regexp=...
 warnIfElementNotKosher(
   exception.getPOStag() == null ?  : exception.getPOStag(),
   exception.isPOStagRegularExpression(),
   exception.getCaseSensitive(),
+  exception.getPOSNegation(),
   false,
   lang,
-  rule.getId() + : + rule.getSubId() +  (exception in POS tag 
of token [ + i + ]) );
+  rule.getId() + : + rule.getSubId() +  (exception in POS tag 
of token [ + i + ]));
 
 // Search for duplicate exceptions (which are useless).
 // Since there are 2 nested loops on the list of exceptions,
@@ -199,27 +204,27 @@
   private static boolean equalException(final Element exception1,
 final Element exception2)
   {
-String string1 = exception1.getString();
-String string2 = exception2.getString();
+String string1 = exception1.getString() == null ?  : 
exception1.getString();
+String string2 = exception2.getString() == null ?  : 
exception2.getString();
 if (!exception1.getCaseSensitive() || !exception2.getCaseSensitive()) {
   // String comparison is done case insensitive if one or both strings
-  // are case insensitive, because the case insensive one would imply
+  // are case insensitive, because the case insensitive one would imply
   // the case sensitive one.
   string1 = string1.toLowerCase();
   string2 = string2.toLowerCase();
 }
-final boolean equalStrings = (string1 == null || string2 == null)
-  ? string1 == string2 : string1.equals(string2);
-if (!equalStrings) {
-  return false;
+if (!string1.isEmpty() || !string2.isEmpty()) {
+  if (!string1.equals(string2)) {
+return false;
+  }
 }
 
-final String posTag1 = exception1.getPOStag();
-final String posTag2 = exception2.getPOStag();
-final boolean equalPosTags = (posTag1 == null || posTag2 == null)
-  ? posTag1 == posTag2 : posTag1.equals(posTag2);
-if (!equalPosTags) {
-  return false;
+final String posTag1 = exception1.getPOStag() == null ?  : 
exception1.getPOStag();
+final String posTag2 = exception2.getPOStag() == null ?  : 
exception2.getPOStag();
+if (!posTag1.isEmpty() || !posTag2.isEmpty()) {
+  if (!posTag1.equals(posTag2)) {
+return false;
+  }
 }
 
 // We should not need to check for: 
@@ -241,6 +246,7 

[LanguageTool] SF.net SVN: languagetool:[6382] trunk/JLanguageTool/src/test/org/ languagetool/rules/patterns/PatternRuleTest.java

2012-01-29 Thread dominikoeo
Revision: 6382
  
http://languagetool.svn.sourceforge.net/languagetool/?rev=6382view=rev
Author:   dominikoeo
Date: 2012-01-29 23:33:06 + (Sun, 29 Jan 2012)
Log Message:
---
- change to detect more errors in grammar.xml when doing ant test
  when an exception implies another one as in:
exceptionxx/exception
exception postag=Axx/exception
  In above example, 1st exception implies the 2nd exception so 2nd
  exception is useless.

Modified Paths:
--

trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java

Modified: 
trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java
===
--- 
trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java
   2012-01-29 22:23:46 UTC (rev 6381)
+++ 
trunk/JLanguageTool/src/test/org/languagetool/rules/patterns/PatternRuleTest.java
   2012-01-29 23:33:06 UTC (rev 6382)
@@ -199,7 +199,11 @@
* Predicate to check whether two exceptions are identical or whether
* one exception always implies the other.
*
-   * There is no reason for a token to have two identical exceptions.
+   * Example #1, useless identical exceptions:
+   * exceptionxx/exceptionexceptionxx/exception
+   *
+   * Example #2, first exception implies the second exception:
+   * exceptionxx/exceptionexception postag=Axx/exception
*/
   private static boolean equalException(final Element exception1,
 final Element exception2)
@@ -213,7 +217,7 @@
   string1 = string1.toLowerCase();
   string2 = string2.toLowerCase();
 }
-if (!string1.isEmpty() || !string2.isEmpty()) {
+if (!string1.isEmpty()  !string2.isEmpty()) {
   if (!string1.equals(string2)) {
 return false;
   }
@@ -221,12 +225,17 @@
 
 final String posTag1 = exception1.getPOStag() == null ?  : 
exception1.getPOStag();
 final String posTag2 = exception2.getPOStag() == null ?  : 
exception2.getPOStag();
-if (!posTag1.isEmpty() || !posTag2.isEmpty()) {
+if (!posTag1.isEmpty()  !posTag2.isEmpty()) {
   if (!posTag1.equals(posTag2)) {
 return false;
   }
 }
 
+if ( string1.isEmpty() != string2.isEmpty()
+   posTag1.isEmpty() != posTag2.isEmpty()) {
+  return false;
+}
+
 // We should not need to check for: 
 // - isCaseSensitive() since an exception without isCaseSensitive
 //   imply the one with isCaseSensitive.

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Languagetool-cvs mailing list
Languagetool-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs