# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright (c) 2009, 2016 Oracle and/or its affiliates. All rights reserved.
#
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
# Other names may be trademarks of their respective owners.
#
# The contents of this file are subject to the terms of either the GNU
# General Public License Version 2 only ("GPL") or the Common
# Development and Distribution License("CDDL") (collectively, the
# "License"). You may not use this file except in compliance with the
# License. You can obtain a copy of the License at
# http://www.netbeans.org/cddl-gplv2.html
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
# specific language governing permissions and limitations under the
# License.  When distributing the software, include this License Header
# Notice in each file and include the License file at
# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the GPL Version 2 section of the License file that
# accompanied this code. If applicable, add the following below the
# License Header, with the fields enclosed by brackets [] replaced by
# your own identifying information:
# "Portions Copyrighted [year] [name of copyright owner]"
#
# If you wish your version of this file to be governed by only the CDDL
# or only the GPL Version 2, indicate your decision by adding
# "[Contributor] elects to include this software in this distribution
# under the [CDDL or GPL Version 2] license." If you do not indicate a
# single choice of license, a recipient has the option to distribute
# your version of this file under either the CDDL, the GPL Version 2 or
# to extend the choice of license to its licensees as provided above.
# However, if you add GPL Version 2 code and therefore, elected the GPL
# Version 2 license, then the option applies only if the new code is
# made subject to such option by the copyright holder.
#
# Contributor(s):
OpenIDE-Module-Display-Category=C/C++
OpenIDE-Module-Long-Description=\u30a2\u30bb\u30f3\u30d6\u30e9\u30fb\u30d5\u30a1\u30a4\u30eb\u306e\u30b5\u30dd\u30fc\u30c8: \u69cb\u6587\u3001\u5f37\u8abf\u8868\u793a\u3001\u30cf\u30a4\u30d1\u30fc\u30ea\u30f3\u30af\u3001\u95a2\u6570\u30ca\u30d3\u30b2\u30fc\u30bf\u306a\u3069
OpenIDE-Module-Name=C/C++\u30a2\u30bb\u30f3\u30d6\u30e9

OpenIDE-Module-Short-Description=\u30a2\u30bb\u30f3\u30d6\u30e9\u30fb\u30b5\u30dd\u30fc\u30c8
Loaders/text/x-asm/Factories/org-netbeans-modules-asm-core-dataobjects-AsmDataLoader.instance=ASM\u30d5\u30a1\u30a4\u30eb

Templates/asmFiles=\u30a2\u30bb\u30f3\u30d6\u30e9
Templates/asmFiles/AsmTemplate.s=ASM\u30d5\u30a1\u30a4\u30eb
Templates/asmFiles/InlineTemplate.il=\u30a4\u30f3\u30e9\u30a4\u30f3\u30fb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30fb\u30d5\u30a1\u30a4\u30eb

LBL_Asm_loader_name=Asm\u30d5\u30a1\u30a4\u30eb

LAB_Liverange = \u30e9\u30a4\u30d6\u7bc4\u56f2\u6ce8\u91c8

text/x-asm=\u30a2\u30bb\u30f3\u30d6\u30e9

ASM_INSTRUCTION=\u547d\u4ee4
ASM_REGISTER=\u30ec\u30b8\u30b9\u30bf

ASM_DIRECTIVE=\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6
ASM_NUMBER=\u6570\u5024
ASM_IMM_OP=\u5373\u6642\u30aa\u30da\u30e9\u30f3\u30c9

ASM_LABEL=\u30e9\u30d9\u30eb(\u30b8\u30e3\u30f3\u30d7)
ASM_LABEL_INST=\u30e9\u30d9\u30eb(\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9)

ASM_UNKWN_ID=\u8b58\u5225\u5b50

ASM_STRING=\u6587\u5b57\u5217
ASM_CHARACTER=\u6587\u5b57

ASM_COMMENT=\u30b3\u30e1\u30f3\u30c8



NetBeans=NetBeans

