# Polish translations for GNU Bison package.
# Copyright (C) 2004, 2005, 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the bison package.
# Wojciech Polak <polak@gnu.org>, 2004, 2005, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: bison-runtime 2.4.1a\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2019-12-11 07:43+0100\n"
"PO-Revision-Date: 2010-01-30 19:11+0100\n"
"Last-Translator: Wojciech Polak <polak@gnu.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"

#: data/skeletons/glr.c:884 data/skeletons/yacc.c:669
msgid "syntax error: cannot back up"
msgstr "błąd składni: nie można cofnąć przesunięcia symbolu leksykalnego"

#: data/skeletons/glr.c:1793
msgid "syntax is ambiguous"
msgstr "składnia jest niejednoznaczna"

#: data/skeletons/glr.c:2079 data/skeletons/glr.c:2164
#: data/skeletons/glr.c:2208 data/skeletons/glr.c:2446
#: data/skeletons/lalr1.cc:1385 data/skeletons/lalr1.cc:1406
#: data/skeletons/yacc.c:1250 data/skeletons/yacc.c:1762
#: data/skeletons/yacc.c:1768
msgid "syntax error"
msgstr "błąd składni"

#: data/skeletons/glr.c:2165 data/skeletons/lalr1.cc:1386
#: data/skeletons/yacc.c:1251
#, c-format
msgid "syntax error, unexpected %s"
msgstr "błąd składni, niespodziewany symbol %s"

#: data/skeletons/glr.c:2166 data/skeletons/lalr1.cc:1387
#: data/skeletons/yacc.c:1252
#, c-format
msgid "syntax error, unexpected %s, expecting %s"
msgstr "błąd składni, niespodziewany symbol %s, oczekiwano %s"

#: data/skeletons/glr.c:2167 data/skeletons/lalr1.cc:1388
#: data/skeletons/yacc.c:1253
#, c-format
msgid "syntax error, unexpected %s, expecting %s or %s"
msgstr "błąd składni, niespodziewany symbol %s, oczekiwano %s lub %s"

#: data/skeletons/glr.c:2168 data/skeletons/lalr1.cc:1389
#: data/skeletons/yacc.c:1254
#, c-format
msgid "syntax error, unexpected %s, expecting %s or %s or %s"
msgstr "błąd składni, niespodziewany %s, oczekiwano %s lub %s lub %s"

#: data/skeletons/glr.c:2169 data/skeletons/lalr1.cc:1390
#: data/skeletons/yacc.c:1255
#, c-format
msgid "syntax error, unexpected %s, expecting %s or %s or %s or %s"
msgstr ""
"błąd składni, niespodziewany symbol %s, oczekiwano %s lub %s lub %s lub %s"

#: data/skeletons/glr.c:2505 data/skeletons/yacc.c:1335
#: data/skeletons/yacc.c:1337 data/skeletons/yacc.c:1526
#: data/skeletons/yacc.c:1918
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
