132 KiB
Komputerowe wspomaganie tłumaczenia
15. Korekta gramatyczna [laboratoria]
Rafał Jaworski (2021)
Ostatnią z omawianych przez nas technik stosowaną podczas wspomagania tłumaczenia jest korekta gramatyczna. Automatyczna korekta gramatyczna tekstu to ambitne zadanie odnalezienia możliwych błędów niezwiązanych bezpośrednio z pisownią. Są to między innymi:
- błędy gramatyczne
- źle użyte słowa
- złe połączenia wyrazowe
- błędy interpunkcyjne
- kolokwializmy
- redundancja (np. "tylko i wyłącznie")
Warto zwrócić uwagę, iż systemy do korekcji gramatycznej można traktować jako klasyfikatory binarne. Przyjmijmy, że odpowiedź pozytywna korektora to wykrycie błędu w tekście, natomiast negatywna - brak błędu. Wówczas rozróżniamy dwa typy pomyłek: false positive oraz false negative. False positive to tzw. "fałszywy alarm" - zbyt duża ich ilość spowoduje wydłużenie czasu pracy użytkownika przez konieczność analizowania zgłoszeń, które w istocie błędami nie są. Co jednak jeszcze gorsze, zbyt duża ilość false positives powoduje spadek zaufania użytkownika do systemu oraz drastyczny spadek satysfakcji z używania systemu. Te drugie błędy - false negatives - to z kolei faktyczne błędy w tekście, które nie zostały wyłapane przez system korekty. Stare polskie porzekadło głosi, że "czego oko nie widzi, tego sercu nie żal". Niestety jednak problem pojawia się, kiedy dostrzeże to jakieś inne oko... Wysoka liczba false negatives wprawdzie skraca czas korekty (sic!), ale odbywa się to kosztem jakości całego procesu. Idealnie zatem byłoby zminimalizować zarówno liczbę false positives, jak i false negatives. Jak jednak łatwo się domyślić, nie jest to zawsze możliwe. Korektor gramatyczny, który jest bardzo restrykcyjny i raportuje wiele błędów, będzie miał tendencję do popełniania false positives. Natomiast korektor bardziej pobłażliwy niechybnie popełni wiele false negatives. Co zatem jest ważniejsze? Praktyka wskazuje, że oba parametry mają podobną wagę, ale jednak odrobinę ważniejsze jest powstrzymanie się od false positives.
Do najbardziej popularnych narzędzi wspomagających korektę gramatyczną tekstu należą Grammarly oraz LanguageTool. Na dzisiejszych zajęciach zajmiemy się tym drugim. LanguageTool został pierwotnie napisany jako praca dyplomowa Daniela Nabera, a następnie intensywnie rozwijany wspólnie z Marcinem Miłkowskim. Aż do dziś projekt jest ciągle rozwijany, zwiększana jest liczba obsługiwanych języków oraz dokładność działania.
LanguageTool jest systemem opartym na regułach. W dobie wszechobecnej sztucznej inteligencji opartej na uczeniu maszynowym rozwiązanie to wydaje się nieco przestarzałe. Jednak to właśnie reguły stanowią o sile LanguageToola - pozwalają one na zwiększenie precyzji korektora poprzez minimalizację false positives. Warto wspomnieć, iż liczne reguły LanguageToola dotyczą również korekty pisowni. Czyni to z LanguageToola kompletne narzędzie do korekty tekstu. Polecam przejrzenie zestawu reguł LanguageToola dla języka angielskiego: https://community.languagetool.org/rule/list?lang=en
Czas uruchomić to narzędzie. Skorzystajmy z Pythona.
Następnie możemy użyć LanguageToola w programie Pythonowym: (przykład zaczerpnięty z oficjalnego tutoriala: https://pypi.org/project/language-tool-python/)
import language_tool_python
import pprint
tool = language_tool_python.LanguageTool('en-US')
text = 'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'
pp = pprint.PrettyPrinter(depth=2)
errors = tool.check(text)
pp.pprint(errors)
[Match({'ruleId': 'EN_A_VS_AN', 'message': 'Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.', 'replacements': ['an'], 'offsetInContext': 16, 'context': 'A sentence with a error in the Hitchhiker’s Guide tot he ...', 'offset': 16, 'errorLength': 1, 'category': 'MISC', 'ruleIssueType': 'misspelling', 'sentence': "A sentence with a error in the Hitchhiker's Guide tot he Galaxy"}), Match({'ruleId': 'TOT_HE', 'message': 'Did you mean “to the”?', 'replacements': ['to the'], 'offsetInContext': 43, 'context': '... with a error in the Hitchhiker’s Guide tot he Galaxy', 'offset': 50, 'errorLength': 6, 'category': 'TYPOS', 'ruleIssueType': 'misspelling', 'sentence': "A sentence with a error in the Hitchhiker's Guide tot he Galaxy"})]
Przeanalizujmy format zwracanego wyniku. Otrzymujemy listę obiektów Match - zawiadomień o potencjalnym błędzie. Razem z każdym błędem otrzymujemy m.in. identyfikator użytej reguły, opis błędu, rekomendancję poprawy, kontekst.
Ćwiczenie 1: Użyj LanguageTool do znalezienia jak największej liczby prawdziwych błędów na swoim ulubionym portalu internetowym. Skorzystaj z poznanych wcześniej technik web scrapingu. Uwaga - LanguageTool najprawdopodobniej oznaczy nazwy własne jako literówki - ten typ błędu nie powinien być brany pod uwagę.
import requests
from bs4 import BeautifulSoup
def find_errors(website_url):
page = requests.get(website_url)
soup = BeautifulSoup(page.content, 'html.parser')
tool = language_tool_python.LanguageTool('pl-PL')
for script in soup(["script", "style"]):
script.extract()
text = " ".join(soup.text.split())
result = []
for error in tool.check(text):
if error.ruleId != 'MORFOLOGIK_RULE_PL_PL':
result.append(error)
return result
print(find_errors('https://wmi.amu.edu.pl/'))
[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "treśćprzejdź"?', 'replacements': ['treśćprzejdź'], 'offsetInContext': 43, 'context': '...rzeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPr...', 'offset': 261, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "główneprzejdź"?', 'replacements': ['główneprzejdź'], 'offsetInContext': 43, 'context': '...z tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A ...', 'offset': 282, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'PREP_CASUS', 'message': 'Przyimek „do” jest używany z dopełniaczem.', 'replacements': [], 'offsetInContext': 43, 'context': '...o TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en p...', 'offset': 299, 'errorLength': 4, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "serwisuprzejdź"?', 'replacements': ['serwisuprzejdź'], 'offsetInContext': 43, 'context': '...śćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wysz...', 'offset': 304, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'PREP_CASUS', 'message': 'Przyimek „do” jest używany z dopełniaczem.', 'replacements': [], 'offsetInContext': 43, 'context': '...głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja...', 'offset': 322, 'errorLength': 10, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'WORD_REPEAT_RULE', 'message': 'Prawdopodobna literówka: powtórzony wyraz', 'replacements': ['A'], 'offsetInContext': 43, 'context': '...dź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mob...', 'offset': 333, 'errorLength': 3, 'category': 'MISC', 'ruleIssueType': 'duplication', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'SKROTY_Z_KROPKA', 'message': 'Ten skrót piszemy z kropką: "pl."', 'replacements': ['pl.'], 'offsetInContext': 43, 'context': '...a serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wyd...', 'offset': 342, 'errorLength': 2, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'WORD_REPEAT_RULE', 'message': 'Prawdopodobna literówka: powtórzony wyraz', 'replacements': ['Wyszukaj'], 'offsetInContext': 43, 'context': '...erwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Mat...', 'offset': 345, 'errorLength': 17, 'category': 'MISC', 'ruleIssueType': 'duplication', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: "Wydział-Wydział"; jeśli to miał być myślnik, to należy napisać "Wydział — Wydział".', 'replacements': ['Wydział-Wydział', 'Wydział — Wydział'], 'offsetInContext': 43, 'context': '... pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydz...', 'offset': 381, 'errorLength': 17, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: "Wydział-Wydział"; jeśli to miał być myślnik, to należy napisać "Wydział — Wydział".', 'replacements': ['Wydział-Wydział', 'Wydział — Wydział'], 'offsetInContext': 43, 'context': '...ział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wy...', 'offset': 424, 'errorLength': 17, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "poznaniuintranet"?', 'replacements': ['poznaniuintranet'], 'offsetInContext': 43, 'context': '...óry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium ...', 'offset': 1681, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "pracownikaintranet"?', 'replacements': ['pracownikaintranet'], 'offsetInContext': 43, 'context': '...m. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJe...', 'offset': 1698, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "olimpijczykówjesteś"?', 'replacements': ['olimpijczykówjesteś'], 'offsetInContext': 43, 'context': '...cownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przed...', 'offset': 1741, 'errorLength': 19, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Stypendium dla olimpijczykówJesteś laureatem lub finalistą olimpiady przedmiotowej?'}), Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Czytaj'], 'offsetInContext': 43, 'context': '...iotowej? Sprawdź jak uzyskać stypendium!Czytaj więcej Jubileusz 30-leciaWydziału Matem...', 'offset': 1841, 'errorLength': 6, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Czytaj więcej Jubileusz 30-leciaWydziału Matematyki i Informatyki UAMCzytaj więcej Z okazji 30-lecia wydziału22 czerwca 2024 r. serdecznie zapraszamy na zjazd absolwentówZAREJESTRUJ SIĘ!'}), Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:"UAMC-zytaj".', 'replacements': ['UAMC-zytaj'], 'offsetInContext': 43, 'context': '...-leciaWydziału Matematyki i Informatyki UAMCzytaj więcej Z okazji 30-lecia wydziału22 cze...', 'offset': 1907, 'errorLength': 9, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'Czytaj więcej Jubileusz 30-leciaWydziału Matematyki i Informatyki UAMCzytaj więcej Z okazji 30-lecia wydziału22 czerwca 2024 r. serdecznie zapraszamy na zjazd absolwentówZAREJESTRUJ SIĘ!'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "absolwentówzarejestruj"?', 'replacements': ['absolwentówzarejestruj'], 'offsetInContext': 43, 'context': '... 2024 r. serdecznie zapraszamy na zjazd absolwentówZAREJESTRUJ SIĘ! Data on CampusZapraszamy na Data o...', 'offset': 2000, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Czytaj więcej Jubileusz 30-leciaWydziału Matematyki i Informatyki UAMCzytaj więcej Z okazji 30-lecia wydziału22 czerwca 2024 r. serdecznie zapraszamy na zjazd absolwentówZAREJESTRUJ SIĘ!'}), Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...raszamy na zjazd absolwentówZAREJESTRUJ SIĘ! Data on CampusZapraszamy na Data on Ca...', 'offset': 2023, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Czytaj więcej Jubileusz 30-leciaWydziału Matematyki i Informatyki UAMCzytaj więcej Z okazji 30-lecia wydziału22 czerwca 2024 r. serdecznie zapraszamy na zjazd absolwentówZAREJESTRUJ SIĘ!'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "campuszapraszamy"?', 'replacements': ['campuszapraszamy'], 'offsetInContext': 43, 'context': '...azd absolwentówZAREJESTRUJ SIĘ! Data on CampusZapraszamy na Data on Campus #1Czytaj więcejStypen...', 'offset': 2036, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Data on CampusZapraszamy na Data on Campus #1Czytaj więcejStypendium dla olimpijczykówSprawdź!'}), Match({'ruleId': 'PREP_CASUS', 'message': 'Ten przyimek jest używany z biernikiem lub miejscownikiem.', 'replacements': [], 'offsetInContext': 43, 'context': '...ESTRUJ SIĘ! Data on CampusZapraszamy na Data on Campus #1Czytaj więcejStypendium dla...', 'offset': 2056, 'errorLength': 4, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Data on CampusZapraszamy na Data on Campus #1Czytaj więcejStypendium dla olimpijczykówSprawdź!'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "więcejstypendium"?', 'replacements': ['więcejstypendium'], 'offsetInContext': 43, 'context': '...usZapraszamy na Data on Campus #1Czytaj więcejStypendium dla olimpijczykówSprawdź!Jubileusz 30-l...', 'offset': 2080, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Data on CampusZapraszamy na Data on Campus #1Czytaj więcejStypendium dla olimpijczykówSprawdź!'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "olimpijczykówsprawdź"?', 'replacements': ['olimpijczykówsprawdź'], 'offsetInContext': 43, 'context': '...on Campus #1Czytaj więcejStypendium dla olimpijczykówSprawdź!Jubileusz 30-leciaWydziału Matematyki i...', 'offset': 2101, 'errorLength': 20, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Data on CampusZapraszamy na Data on Campus #1Czytaj więcejStypendium dla olimpijczykówSprawdź!'}), Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Jubileusz'], 'offsetInContext': 43, 'context': '...ęcejStypendium dla olimpijczykówSprawdź!Jubileusz 30-leciaWydziału Matematyki i Informaty...', 'offset': 2122, 'errorLength': 9, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Jubileusz 30-leciaWydziału Matematyki i InformatykiZjazd absolwentów22 czerwca 2024 r.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "informatykizjazd"?', 'replacements': ['informatykizjazd'], 'offsetInContext': 43, 'context': '...Jubileusz 30-leciaWydziału Matematyki i InformatykiZjazd absolwentów22 czerwca 2024 r.Data on Ca...', 'offset': 2162, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Jubileusz 30-leciaWydziału Matematyki i InformatykiZjazd absolwentów22 czerwca 2024 r.'}), Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Data'], 'offsetInContext': 43, 'context': '...atykiZjazd absolwentów22 czerwca 2024 r.Data on Campus #18 czerwca 2024 r. Wiadomośc...', 'offset': 2208, 'errorLength': 4, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Data on Campus #18 czerwca 2024 r.'}), Match({'ruleId': '_NR_', 'message': 'Anglicyzm. W polskiej tradycji typograficznej powinno być: "nr 18".', 'replacements': ['nr 18'], 'offsetInContext': 43, 'context': '...lwentów22 czerwca 2024 r.Data on Campus #18 czerwca 2024 r. Wiadomości Profesor Mas...', 'offset': 2223, 'errorLength': 3, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'locale-violation', 'sentence': 'Data on Campus #18 czerwca 2024 r.'}), Match({'ruleId': 'WIADACY', 'message': 'Ten rusycyzm jest błędnie używany po polsku w znaczeniu.', 'replacements': ['przodującej', 'głównej', 'przewodniej', 'zasadniczej', 'najlepszej'], 'offsetInContext': 43, 'context': '...ścisłym? Chcesz studiować matematykę na wiodącej uczelni w Polsce? Wybierz studia na kie...', 'offset': 3807, 'errorLength': 8, 'category': 'SEMANTICS', 'ruleIssueType': 'style', 'sentence': 'Chcesz studiować matematykę na wiodącej uczelni w Polsce?'}), Match({'ruleId': 'LICZBA_BEZ_DYWIZU', 'message': 'Myślnika nie używa się wewnątrz wyrazu: "5-letnie". Jeśli ten znak jest między osobnymi wyrazami, należy napisać ze spacjami: "5 – letnie".', 'replacements': ['5-letnie', '5 – letnie'], 'offsetInContext': 43, 'context': '... mamy coś dla Ciebie! Przygotowaliśmy 3,5–letnie studia inżynierskie na kierunku Informa...', 'offset': 4450, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Przygotowaliśmy 3,5–letnie studia inżynierskie na kierunku Informatyka, dzięki którym zdobędziesz gruntowną wiedzę z zakresu informatyki i matematyki.'}), Match({'ruleId': 'PL_DWA_WYRAZY', 'message': 'Te dwa wyrazy się powtarzają. Prawdopodobnie wystarczy zostawić tylko "Informatyka kwantowa" albo rozdzielić oba wystąpienia przecinkiem: "Informatyka kwantowa, Informatyka kwantowa".', 'replacements': ['Informatyka kwantowa', 'Informatyka kwantowa, Informatyka kwantowa'], 'offsetInContext': 43, 'context': '... i ciągle zmieniającym się rynku pracy. Informatyka kwantowa Informatyka kwantowa to interdyscyplinarne studia, łączące w...', 'offset': 4995, 'errorLength': 41, 'category': 'MISC', 'ruleIssueType': 'uncategorized', 'sentence': 'Informatyka kwantowa Informatyka kwantowa to interdyscyplinarne studia, łączące w sobie obszary wiedzy z zakresu fizyki, informatyki i matematyki.'}), Match({'ruleId': 'LICZBA_BEZ_DYWIZU', 'message': 'Myślnika nie używa się wewnątrz wyrazu: "5-letnie". Jeśli ten znak jest między osobnymi wyrazami, należy napisać ze spacjami: "5 – letnie".', 'replacements': ['5-letnie', '5 – letnie'], 'offsetInContext': 43, 'context': '...ki UAM oraz firmą IBM przygotowaliśmy 3,5–letnie (7 semestrów) studia inżynierskie, podc...', 'offset': 5204, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Razem z Wydziałem Fizyki UAM oraz firmą IBM przygotowaliśmy 3,5–letnie (7 semestrów) studia inżynierskie, podczas których będziesz samodzielnie tworzyć i uruchamiać programy na komputerach i symulatorach kwantowych.'}), Match({'ruleId': 'BRAK_PRZECINKA_ZEBY', 'message': 'Przed tym spójnikiem prawdopodobnie należy postawić przecinek: "informatyki, by".', 'replacements': ['informatyki, by'], 'offsetInContext': 43, 'context': '...Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia! Nauczanie m...', 'offset': 6132, 'errorLength': 14, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia!'}), Match({'ruleId': 'BRAK_PRZECINKA_ZEBY', 'message': 'Przed tym spójnikiem prawdopodobnie należy postawić przecinek: "informatyki, by".', 'replacements': ['informatyki, by'], 'offsetInContext': 43, 'context': '...Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia! Nauczanie m...', 'offset': 6792, 'errorLength': 14, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia!'}), Match({'ruleId': 'BRAK_PRZECINKA_ZEBY', 'message': 'Przed tym spójnikiem prawdopodobnie należy postawić przecinek: "informatyki, by".', 'replacements': ['informatyki, by'], 'offsetInContext': 43, 'context': '...Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia! Studia II s...', 'offset': 7452, 'errorLength': 14, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia!'}), Match({'ruleId': 'SPACJA_W_SKROCIE', 'message': 'Ten skrót zapisuje się bez spacji: "m.in.".', 'replacements': ['m.in.'], 'offsetInContext': 43, 'context': '...ających, poszerzających Twoje horyzonty m. in. o umiejętności z zakresu zaawansowanych...', 'offset': 7782, 'errorLength': 6, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Stworzyliśmy dla Ciebie 2-letni program studiów uzupełniających, poszerzających Twoje horyzonty m. in. o umiejętności z zakresu zaawansowanych metod matematycznych.'}), Match({'ruleId': 'BRAK_PRZECINKA_ZEBY', 'message': 'Przed tym spójnikiem prawdopodobnie należy postawić przecinek: "informatyki, by".', 'replacements': ['informatyki, by'], 'offsetInContext': 43, 'context': '...Wybierz kierunek nauczanie matematyki i informatyki by edukować kolejne pokolenia! Analiza i p...', 'offset': 8973, 'errorLength': 14, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Wybierz kierunek nauczanie matematyki i informatyki by edukować kolejne pokolenia!'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "tutajfacebookfacebookyoutubeyoutuberssrssbipbip"?', 'replacements': ['tutajfacebookfacebookyoutubeyoutuberssrssbipbip'], 'offsetInContext': 43, 'context': '...Przyszłością Baza Wiedzy Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwers...', 'offset': 10491, 'errorLength': 47, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczyciel-mistrz-innowator DIH AI Tech Studia z Przyszłością Baza Wiedzy Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "informatykiuniwersytet"?', 'replacements': ['informatykiuniwersytet'], 'offsetInContext': 43, 'context': '...ouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Un...', 'offset': 10560, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczyciel-mistrz-innowator DIH AI Tech Studia z Przyszłością Baza Wiedzy Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "wydziałżycie"?', 'replacements': ['wydziałżycie'], 'offsetInContext': 43, 'context': '...x +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownika...', 'offset': 10722, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "naukowedla"?', 'replacements': ['naukowedla'], 'offsetInContext': 43, 'context': '...5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet st...', 'offset': 10735, 'errorLength': 10, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "kandydataintranet"?', 'replacements': ['kandydataintranet'], 'offsetInContext': 43, 'context': '... wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisu...', 'offset': 10746, 'errorLength': 17, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "pracownikaintranet"?', 'replacements': ['pracownikaintranet'], 'offsetInContext': 43, 'context': '...działŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweD...', 'offset': 10764, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "studentamapa"?', 'replacements': ['studentamapa'], 'offsetInContext': 43, 'context': '...la KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dos...', 'offset': 10783, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "serwisuzapytania"?', 'replacements': ['serwisuzapytania'], 'offsetInContext': 43, 'context': '...ntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKo...', 'offset': 10796, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "ofertowedeklaracja"?', 'replacements': ['ofertowedeklaracja'], 'offsetInContext': 43, 'context': '...aIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza j...', 'offset': 10813, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'}), Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: "dostępnościkontaktkontakt"?', 'replacements': ['dostępnościkontaktkontakt'], 'offsetInContext': 43, 'context': '...apa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersyt...', 'offset': 10832, 'errorLength': 25, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '+48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików "cookies" zgodnie z Polityka prywatności.'})]
Ćwiczenie 2: Napisz skrypt, który poszuka błędów w komentarzach klasy Javowej (zwykłych // oraz w javadocach). Uruchom ten skrypt na źródłach wybranego opensourcowego projektu w Javie.
def correct_java_grammar(java_file_path):
import re
def sanitize(text: str) -> str:
text = re.sub(r'\s+', ' ', text)
text = re.sub(r'/|\\{|}|\*|\[|]|(@\w+)', '', text)
return text
text = ""
result = []
tool = language_tool_python.LanguageTool('en-US')
with open(java_file_path, 'r') as file:
text = file.read()
lines = re.findall(r'//.+\n', text) + re.findall(r'\*.+\n', text)
text = ' '.join(lines)
for error in tool.check(sanitize(text)):
if error.ruleId != 'MORFOLOGIK_RULE_EN_US':
result.append(error)
return result
print(correct_java_grammar('test.java'))
[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['Index'], 'offsetInContext': 33, 'context': 'neo4j.com www.gnu.orglicenses>. index into the buffer character array to read...', 'offset': 33, 'errorLength': 5, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': "index into the buffer character array to read the next time nextChar() is called last index (effectively length) of characters in use in the buffer bufferPos denoting the start of this current line that we're reading bufferPos when we started reading the current field 1-based value of which logical line we're reading a.t.m."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... read the next time nextChar() is called last index (effectively length) of chara...', 'offset': 113, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "index into the buffer character array to read the next time nextChar() is called last index (effectively length) of characters in use in the buffer bufferPos denoting the start of this current line that we're reading bufferPos when we started reading the current field 1-based value of which logical line we're reading a.t.m."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...ngth) of characters in use in the buffer bufferPos denoting the start of this cur...', 'offset': 181, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "index into the buffer character array to read the next time nextChar() is called last index (effectively length) of characters in use in the buffer bufferPos denoting the start of this current line that we're reading bufferPos when we started reading the current field 1-based value of which logical line we're reading a.t.m."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "... of this current line that we're reading bufferPos when we started reading the cu...", 'offset': 251, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "index into the buffer character array to read the next time nextChar() is called last index (effectively length) of characters in use in the buffer bufferPos denoting the start of this current line that we're reading bufferPos when we started reading the current field 1-based value of which logical line we're reading a.t.m."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...hen we started reading the current field 1-based value of which logical line we'r...", 'offset': 304, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "index into the buffer character array to read the next time nextChar() is called last index (effectively length) of characters in use in the buffer bufferPos denoting the start of this current line that we're reading bufferPos when we started reading the current field 1-based value of which logical line we're reading a.t.m."}), Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['Flag'], 'offsetInContext': 43, 'context': "...hich logical line we're reading a.t.m. flag to know if we've read to the end char ...", 'offset': 364, 'errorLength': 4, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': "flag to know if we've read to the end char to recognize as quote startend this absolute position + bufferPos is the current position in the source we're reading We're at the end Keep a start position in case we need to further fill the buffer in nextChar, a value can at maximum be the whole buffer, so max one fill per value is supported."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': ".... flag to know if we've read to the end char to recognize as quote startend thi...", 'offset': 401, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "flag to know if we've read to the end char to recognize as quote startend this absolute position + bufferPos is the current position in the source we're reading We're at the end Keep a start position in case we need to further fill the buffer in nextChar, a value can at maximum be the whole buffer, so max one fill per value is supported."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...end char to recognize as quote startend this absolute position + bufferPos is th...', 'offset': 438, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "flag to know if we've read to the end char to recognize as quote startend this absolute position + bufferPos is the current position in the source we're reading We're at the end Keep a start position in case we need to further fill the buffer in nextChar, a value can at maximum be the whole buffer, so max one fill per value is supported."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...ent position in the source we're reading We're at the end Keep a start position ...", 'offset': 526, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "flag to know if we've read to the end char to recognize as quote startend this absolute position + bufferPos is the current position in the source we're reading We're at the end Keep a start position in case we need to further fill the buffer in nextChar, a value can at maximum be the whole buffer, so max one fill per value is supported."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...e source we're reading We're at the end Keep a start position in case we need to...", 'offset': 544, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "flag to know if we've read to the end char to recognize as quote startend this absolute position + bufferPos is the current position in the source we're reading We're at the end Keep a start position in case we need to further fill the buffer in nextChar, a value can at maximum be the whole buffer, so max one fill per value is supported."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... nextChar, a value can at maximum be the whole buffer, so max one fill per value ...', 'offset': 653, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "flag to know if we've read to the end char to recognize as quote startend this absolute position + bufferPos is the current position in the source we're reading We're at the end Keep a start position in case we need to further fill the buffer in nextChar, a value can at maximum be the whole buffer, so max one fill per value is supported."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...fer flips over, that's why it's a member In normal mode, i.e. not within quotes ...", 'offset': 789, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... In normal mode, i.e. not within quotes We found a delimiter, set marker and ret...', 'offset': 829, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... a delimiter, set marker and return true Only check for left+trim whitespace as l...', 'offset': 879, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...whitespace as long as we haven't found a non-whitespace character We found a whi...", 'offset': 946, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...aven't found a non-whitespace character We found a whitespace, which is before ...", 'offset': 972, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... We found a whitespace, which is before the first non-whitespace of the value a...', 'offset': 1012, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...e the first non-whitespace of the value and we've been told to trim that off We...", 'offset': 1051, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...ue and we've been told to trim that off We found a quote, which was the first o...", 'offset': 1089, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...hat off We found a quote, which was the first of the value, skip it and switch ...', 'offset': 1122, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...was the first of the value, skip it and switch mode Encountered newline, done f...', 'offset': 1155, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...t of the value, skip it and switch mode Encountered newline, done for now We're...", 'offset': 1168, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "... mode Encountered newline, done for now We're at the start of this read so just ...", 'offset': 1203, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...t the start of this read so just skip it This value is quoted, i.e. started with ...', 'offset': 1252, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...d with a quote and has also seen a quote else this is a character to include as p...', 'offset': 1327, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... to include as part of the current value In quoted mode, i.e. within quotes Foun...', 'offset': 1393, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...alue In quoted mode, i.e. within quotes Found a quote within a quote, peek at ne...', 'offset': 1429, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "... quote within a quote, peek at next char Found a double quote, skip it and we're ...", 'offset': 1478, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'COMMA_COMPOUND_SENTENCE', 'message': 'Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).', 'replacements': [', and'], 'offsetInContext': 43, 'context': "...next char Found a double quote, skip it and we're going down one more quote depth ...", 'offset': 1509, 'errorLength': 4, 'category': 'PUNCTUATION', 'ruleIssueType': 'uncategorized', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': "...nd we're going down one more quote depth (quote-in-quote) Found an ending quote,...", 'offset': 1551, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...n one more quote depth (quote-in-quote) Found an ending quote, skip it and switc...', 'offset': 1569, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...an ending quote, skip it and switch mode Found a new line inside a quotation... ...', 'offset': 1617, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... Found a new line inside a quotation... ...but we are configured to disallow it ...', 'offset': 1657, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "... ...but we are configured to disallow it ... it's OK, just keep going Legacy con...", 'offset': 1698, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...isallow it ... it's OK, just keep going Legacy concern, support java style quote...", 'offset': 1728, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...ncern, support java style quote encoding Found a slash encoded quote We have an ...', 'offset': 1779, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...te encoding Found a slash encoded quote We have an open quote but have reached t...', 'offset': 1808, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "... of the file, this is a formatting error We didn't find any of the characters sou...", 'offset': 1896, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...'t find any of the characters sought for We found the last value of the line or s...", 'offset': 1945, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...und the last value of the line or stream We reposition characters because we migh...', 'offset': 1992, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "seekStartPos updated in nextChar if buffer flips over, that's why it's a member In normal mode, i.e. not within quotes We found a delimiter, set marker and return true Only check for left+trim whitespace as long as we haven't found a non-whitespace character We found a whitespace, which is before the first non-whitespace of the value and we've been told to trim that off We found a quote, which was the first of the value, skip it and switch mode Encountered newline, done for now We're at the start of this read so just skip it This value is quoted, i.e. started with a quote and has also seen a quote else this is a character to include as part of the current value In quoted mode, i.e. within quotes Found a quote within a quote, peek at next char Found a double quote, skip it and we're going down one more quote depth (quote-in-quote) Found an ending quote, skip it and switch mode Found a new line inside a quotation... ...but we are configured to disallow it ... it's OK, just keep going Legacy concern, support java style quote encoding Found a slash encoded quote We have an open quote but have reached the end of the file, this is a formatting error We didn't find any of the characters sought for We found the last value of the line or stream We reposition characters because we might have skipped some along the way, double-quotes and what not."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "... we reposition each character as long as we're still reading the same value. All ...", 'offset': 2195, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "We want to take an as little hit as possible for that, so we reposition each character as long as we're still reading the same value."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...ot have to take any hit of skipped chars for this particular value. Cypher compa...', 'offset': 2296, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'All other values will not have to take any hit of skipped chars for this particular value.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...assed here with older implementations of Configuration. So we need to ignore the ...', 'offset': 2430, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Cypher compatibility can result in older Cypher 2.3 code being passed here with older implementations of Configuration.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...(). Fill the buffer with new characters We moved over to a new source, reset lin...', 'offset': 2570, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Fill the buffer with new characters We moved over to a new source, reset line number Copyright (c) "Neo4j" Neo4j Sweden AB https:neo4j.com This file is part of Neo4j.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... over to a new source, reset line number Copyright (c) "Neo4j" Neo4j Sweden AB h...', 'offset': 2620, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Fill the buffer with new characters We moved over to a new source, reset line number Copyright (c) "Neo4j" Neo4j Sweden AB https:neo4j.com This file is part of Neo4j.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...reset line number Copyright (c) "Neo4j" Neo4j Sweden AB https:neo4j.com This fi...', 'offset': 2643, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Fill the buffer with new characters We moved over to a new source, reset line number Copyright (c) "Neo4j" Neo4j Sweden AB https:neo4j.com This file is part of Neo4j.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '..."Neo4j" Neo4j Sweden AB https:neo4j.com This file is part of Neo4j. Neo4j is fr...', 'offset': 2676, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Fill the buffer with new characters We moved over to a new source, reset line number Copyright (c) "Neo4j" Neo4j Sweden AB https:neo4j.com This file is part of Neo4j.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...re: you can redistribute it andor modify it under the terms of the GNU General Pu...', 'offset': 2767, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Neo4j is free software: you can redistribute it andor modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...U General Public License as published by the Free Software Foundation, either ver...', 'offset': 2837, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Neo4j is free software: you can redistribute it andor modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...ion, either version 3 of the License, or (at your option) any later version. Thi...', 'offset': 2904, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Neo4j is free software: you can redistribute it andor modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...uted in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even t...', 'offset': 3006, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...TY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICU...', 'offset': 3070, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...ITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more deta...', 'offset': 3132, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'See the GNU General Public License for more details.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...a copy of the GNU General Public License along with this program. If not, see <ht...', 'offset': 3245, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'You should have received a copy of the GNU General Public License along with this program.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...f not, see <https:www.gnu.orglicenses>. Much like a BufferedReader for a Reade...', 'offset': 3313, 'errorLength': 3, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Much like a BufferedReader for a Reader.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...tps:www.gnu.orglicenses>. Much like a BufferedReader for a Reader. -1 since...', 'offset': 3327, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Much like a BufferedReader for a Reader.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...s>. Much like a BufferedReader for a Reader. -1 since we just advanced one ...', 'offset': 3349, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Much like a BufferedReader for a Reader.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...h like a BufferedReader for a Reader. -1 since we just advanced one ) We fou...', 'offset': 3359, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'COMMA_PARENTHESIS_WHITESPACE', 'message': 'Don’t put a space before the closing parenthesis.', 'replacements': [')'], 'offsetInContext': 43, 'context': '... Reader. -1 since we just advanced one ) We found a whitespace, which is befor...', 'offset': 3390, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...eader. -1 since we just advanced one ) We found a whitespace, which is before ...', 'offset': 3392, 'errorLength': 3, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '... We found a whitespace, which is before -1 since we just advanced one ) We fou...', 'offset': 3433, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'COMMA_PARENTHESIS_WHITESPACE', 'message': 'Don’t put a space before the closing parenthesis.', 'replacements': [')'], 'offsetInContext': 43, 'context': '...is before -1 since we just advanced one ) We found a quote, which was the Sta...', 'offset': 3464, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '... before -1 since we just advanced one ) We found a quote, which was the Starti...', 'offset': 3466, 'errorLength': 3, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '... one ) We found a quote, which was the Starting from the current position, #bu...', 'offset': 3500, 'errorLength': 3, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...he Starting from the current position, #bufferPos, scan backwards as long as wh...', 'offset': 3538, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '-1 since we just advanced one ) We found a whitespace, which is before -1 since we just advanced one ) We found a quote, which was the Starting from the current position, #bufferPos, scan backwards as long as whitespace is found.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...ck than the start of this field is, i.e. #seekStartPos. the right index of the ...', 'offset': 3674, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Although it cannot scan further back than the start of this field is, i.e. #seekStartPos.'}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '... of this field is, i.e. #seekStartPos. the right index of the value to pass int...', 'offset': 3691, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'the right index of the value to pass into Mark.'}), Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['The'], 'offsetInContext': 43, 'context': '...f this field is, i.e. #seekStartPos. the right index of the value to pass into ...', 'offset': 3693, 'errorLength': 3, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'the right index of the value to pass into Mark.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '...he right index of the value to pass into Mark. This is only called if Configurat...', 'offset': 3734, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'the right index of the value to pass into Mark.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... pass into Mark. This is only called if Configuration#trimStrings() is true. b...', 'offset': 3764, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'This is only called if Configuration#trimStrings() is true.'}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': "...alled if Configuration#trimStrings() is true. bufferPos has advanced - 1 don't ...", 'offset': 3796, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'This is only called if Configuration#trimStrings() is true.'}), Match({'ruleId': 'EN_UNPAIRED_BRACKETS', 'message': 'Unpaired symbol: ‘(’ seems to be missing', 'replacements': [], 'offsetInContext': 43, 'context': '... check the last read char (delim or EOF))) true if something was read, other...', 'offset': 3877, 'errorLength': 1, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': "bufferPos has advanced - 1 don't check the last read char (delim or EOF))) true if something was read, otherwise false which means that we reached EOF."}), Match({'ruleId': 'WHITESPACE_RULE', 'message': 'Possible typo: you repeated a whitespace', 'replacements': [' '], 'offsetInContext': 43, 'context': '...heck the last read char (delim or EOF))) true if something was read, otherwise f...', 'offset': 3879, 'errorLength': 6, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': "bufferPos has advanced - 1 don't check the last read char (delim or EOF))) true if something was read, otherwise false which means that we reached EOF."}), Match({'ruleId': 'CONSECUTIVE_SPACES', 'message': 'It seems like there are too many consecutive spaces here.', 'replacements': [' '], 'offsetInContext': 43, 'context': '... true if something was read, otherwise false which means that we reached EOF. ...', 'offset': 3922, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': "bufferPos has advanced - 1 don't check the last read char (delim or EOF))) true if something was read, otherwise false which means that we reached EOF."})]