# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


keywordNotAllowed=${keyword}'\uc744(\ub97c) \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
classDefinitionNotAllowed=\ud074\ub798\uc2a4\ub97c \uc815\uc758\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
expressionNotSupported=\uc2dd\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
functionDefinitionNotAllowed=\ud568\uc218\ub97c \uc815\uc758\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
interfaceDefinitionNotAllowed=\uc778\ud130\ud398\uc774\uc2a4\ub97c \uc815\uc758\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
labelsNotAllowed=\ub808\uc774\ube14\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
literalObjectsNotSupported=\ub9ac\ud130\ub7f4 \uac1d\uccb4\uac00 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
nullPointerException=null \uac1d\uccb4 \ucc38\uc870\uc758 \uc18d\uc131 \ub610\ub294 \uba54\uc11c\ub4dc\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
StatementListNodeWIthMoreThanOneItem=StatementListNode\uc5d0 \ud56d\ubaa9\uc774 \uc5ec\ub7ec \uac1c \uc788\uc2b5\ub2c8\ub2e4.
typeNotExpected=\uc608\uae30\uce58 \uc54a\uc740 \uc720\ud615\uc785\ub2c8\ub2e4.
unrecognizedBinaryOperator=\uc778\uc2dd\ud560 \uc218 \uc5c6\ub294 \uc774\uc9c4 \uc5f0\uc0b0\uc790\uc785\ub2c8\ub2e4.
unrecognizedUnaryOperator=\uc778\uc2dd\ud560 \uc218 \uc5c6\ub294 \ub2e8\ud56d \uc5f0\uc0b0\uc790\uc785\ub2c8\ub2e4.
unsupportedExpression=\uc9c0\uc6d0\ub418\uc9c0 \uc54a\ub294 \uc2dd\uc785\ub2c8\ub2e4.
whatIsDocCommentNode=DocCommentNode\ub97c \ud655\uc778\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
whatIsMetaDataNode=MetaDataNode\ub97c \ud655\uc778\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
xmlLiteralsNotSupported=XML \ub9ac\ud130\ub7f4\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
binaryProgramNodeUnexpected=\uc608\uae30\uce58 \uc54a\uc740 BinaryProgramNode
noSuchVariable = \ub2e4\uc74c \ubcc0\uc218 \uc5c6\uc74c: ${arg2}
typeError = \uc720\ud615 \uc624\ub958
