# Translation of bison-runtime to Croatian.
# Copyright © 2002, 2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the bison package.
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: bison-runtime 2.6.5\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2012-12-12 16:09+0100\n"
"PO-Revision-Date: 2012-11-09 17:02+0100\n"
"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

#: data/glr.c:855 data/yacc.c:776
msgid "syntax error: cannot back up"
msgstr "sintaksna greška: ne mogu napraviti sigurnosnu kopiju"

#: data/glr.c:1729
msgid "syntax is ambiguous"
msgstr "sintaksa je višeznačna"

#: data/glr.c:2014 data/glr.c:2094 data/glr.c:2134 data/glr.c:2399
#: data/lalr1.cc:947 data/lalr1.cc:967 data/yacc.c:1351 data/yacc.c:1856
#: data/yacc.c:1862
msgid "syntax error"
msgstr "sintaksna greška"

#: data/glr.c:2095 data/lalr1.cc:948 data/yacc.c:1352
#, c-format
msgid "syntax error, unexpected %s"
msgstr "sintaksna greška, neočekivani %s"

#: data/glr.c:2096 data/lalr1.cc:949 data/yacc.c:1353
#, c-format
msgid "syntax error, unexpected %s, expecting %s"
msgstr "sintaksna greška, neočekivani %s, očekujem %s"

#: data/glr.c:2097 data/lalr1.cc:950 data/yacc.c:1354
#, c-format
msgid "syntax error, unexpected %s, expecting %s or %s"
msgstr "sintaksna greška, neočekivani %s, očekujem %s ili %s"

#: data/glr.c:2098 data/lalr1.cc:951 data/yacc.c:1355
#, c-format
msgid "syntax error, unexpected %s, expecting %s or %s or %s"
msgstr "sintaksna greška, neočekivani %s, očekujem %s, %s ili %s"

#: data/glr.c:2099 data/lalr1.cc:952 data/yacc.c:1356
#, c-format
msgid "syntax error, unexpected %s, expecting %s or %s or %s or %s"
msgstr "sintaksna greška, neočekivani %s, očekujem %s, %s, %s ili %s"

#: data/glr.c:2459 data/yacc.c:1436 data/yacc.c:1438 data/yacc.c:1616
#: data/yacc.c:2013
msgid "memory exhausted"
msgstr "memorija iscrpljena"
