# Japanese message for GNU bison 2.4 (runtime)
# Copyright (C) 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the bison package.
# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 2001.
# Yasuaki Taniguchi <yasuakit@gmail.com>, 2010
msgid ""
msgstr ""
"Project-Id-Version: bison-runtime 2.4\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2012-12-12 16:09+0100\n"
"PO-Revision-Date: 2010-01-10 14:26+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: data/glr.c:855 data/yacc.c:776
msgid "syntax error: cannot back up"
msgstr "構文エラー: バックアップすることができません"

#: data/glr.c:1729
msgid "syntax is ambiguous"
msgstr "構文が曖昧です"

#: 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 "構文エラー"

#: data/glr.c:2095 data/lalr1.cc:948 data/yacc.c:1352
#, c-format
msgid "syntax error, unexpected %s"
msgstr "構文エラー、予期しない %s です"

#: data/glr.c:2096 data/lalr1.cc:949 data/yacc.c:1353
#, c-format
msgid "syntax error, unexpected %s, expecting %s"
msgstr "構文エラー、予期しない %s です。予期されるのは %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 "構文エラー、予期しない %s です。予期されるのは %s または %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 "構文エラー、 予期しない %s です。予期されるのは %s、%s または %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 ""
"構文エラー、予期しない %s です。予期されるのは %s、%s、%s、または %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 "メモリを使い果たしました"
