Revision: 6161
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=6161&view=rev
Author:   gulp21-1
Date:     2012-01-05 12:28:06 +0000 (Thu, 05 Jan 2012)
Log Message:
-----------
[de] WiederVsWider: do not find error in 'Das spiegelt wieder wider...'
     NACHDEM_PRAETERITUM: find error when the verb is the last word

Modified Paths:
--------------
    
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java
    trunk/JLanguageTool/src/rules/de/grammar.xml
    
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java

Modified: 
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java
===================================================================
--- 
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java   
    2012-01-04 20:41:47 UTC (rev 6160)
+++ 
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java   
    2012-01-05 12:28:06 UTC (rev 6161)
@@ -54,12 +54,11 @@
   public RuleMatch[] match(AnalyzedSentence text) {
     final List<RuleMatch> ruleMatches = new ArrayList<RuleMatch>();
     final AnalyzedTokenReadings[] tokens = text.getTokens();
-    int pos = 0;
     boolean foundSpiegelt = false;
     boolean foundWieder = false;
     boolean foundWider = false;
-    for (AnalyzedTokenReadings token1 : tokens) {
-      final String token = token1.getToken();
+    for (int i=0; i<tokens.length; i++) {
+      final String token = tokens[i].getToken();
       if (token.trim().equals("")) {
         // ignore
       } else {
@@ -71,9 +70,12 @@
         } else if (token.equalsIgnoreCase("wider") && foundSpiegelt) {
           foundWider = true;
         }
-        if (foundSpiegelt && foundWieder && !foundWider) {
+        if (foundSpiegelt && foundWieder && !foundWider &&
+            !(tokens.length > i + 2 && (tokens[i + 
1].getToken().equals("wider") || tokens[i + 2].getToken().equals("wider")) )
+           ) {
           final String msg = "'wider' in 'widerspiegeln' wird mit 'i' statt 
mit 'ie' " +
                   "geschrieben, z.B. 'Das spiegelt die Situation gut wider.'";
+          final int pos = tokens[i].getStartPos();
           final RuleMatch ruleMatch = new RuleMatch(this, pos, pos + 
token.length(), msg);
           ruleMatch.setSuggestedReplacement("wider");
           ruleMatches.add(ruleMatch);
@@ -82,7 +84,6 @@
           foundWider = false;
         }
       }
-      pos += token.length();
     }
     return toRuleMatchArray(ruleMatches);
   }

Modified: trunk/JLanguageTool/src/rules/de/grammar.xml
===================================================================
--- trunk/JLanguageTool/src/rules/de/grammar.xml        2012-01-04 20:41:47 UTC 
(rev 6160)
+++ trunk/JLanguageTool/src/rules/de/grammar.xml        2012-01-05 12:28:06 UTC 
(rev 6161)
@@ -6342,6 +6342,17 @@
         <example type="correct">Nachdem der Brief <marker>gekommen 
war</marker>, ging ich nach Hause.</example>
         <example type="incorrect">Nachdem der Brief <marker>kam</marker>, ging 
ich nach Hause.</example>
       </rule>
+      <rule>
+        <pattern mark_from="2" mark_to="-1">
+          <token>,</token>
+          <token skip="-1">nachdem<exception scope="next" 
regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception></token>
+          <token postag_regexp="yes" postag="VER:.*:PRT:.*"><exception 
scope="current" postag_regexp="yes" postag=".*AUX.*"/></token>
+          <token postag="SENT_END"/>
+        </pattern>
+        <message>Die Subjunktion 'nachdem' drückt standardsprachlich 
Vorzeitigkeit aus und kann daher nicht mit dem Präteritum verwendet werden. 
Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt 
(Präteritum im Hauptsatz) oder die Subjunktion 'als' zum Ausdrücken von 
Gleichzeitigkeit.</message>
+        <example type="correct">Ich ging nach Hause, nachdem der Brief 
<marker>gekommen war</marker>.</example>
+        <example type="incorrect">Ich ging nach Hause, nachdem der Brief 
<marker>kam</marker>.</example>
+      </rule>
     </rulegroup>
     <rulegroup id="WEGEN_DIR" name="Grammatik: 'wegen dir (deinetwegen)' usw.">
       <rule>

Modified: 
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
===================================================================
--- 
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
   2012-01-04 20:41:47 UTC (rev 6160)
+++ 
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
   2012-01-05 12:28:06 UTC (rev 6161)
@@ -38,8 +38,7 @@
     assertEquals(0, rule.match(langTool.getAnalyzedSentence("Das spiegelt die 
Situation.")).length);
     assertEquals(0, rule.match(langTool.getAnalyzedSentence("Immer wieder 
spiegelt das die Situation.")).length);
     assertEquals(0, rule.match(langTool.getAnalyzedSentence("Immer wieder 
spiegelt das die Situation wider.")).length);
-    // known to match although sentence is okay:
-    //assertEquals(0, rule.match(langTool.getAnalyzedText("Das spiegelt wieder 
wider, wie es läuft.")).length);
+    assertEquals(0, rule.match(langTool.getAnalyzedSentence("Das spiegelt 
wieder wider, wie es läuft.")).length);
     // errors:
     assertEquals(1, rule.match(langTool.getAnalyzedSentence("Das spiegelt 
wieder, wie es wieder läuft.")).length);
     assertEquals(1, rule.match(langTool.getAnalyzedSentence("Das spiegelt die 
Situation gut wieder.")).length);

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


------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs

Reply via email to