blob: 5a26970f353079d9be42ee5010ab76754fe29b6d [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
GEN_SRCS_LEX = [
"fuchsia/developer/plugin/fidl/fidl/FidlLexer.java",
]
genrule(
name = "fidl_lex_gen",
srcs = ["FidlLexer.flex"],
outs = GEN_SRCS_LEX,
cmd = "$(location //third_party/jflex:jflex_bin) -d $(@D) $<",
tools = ["//third_party/jflex:jflex_bin"],
)
java_binary(
name = "grammar_kit_bin",
main_class = "org.intellij.grammar.Main",
runtime_deps = [
"@grammar_kit",
"@intellij_ce_2018_3//:sdk",
],
)
# Regenerate with something like:
# find . -name \*.java | sort | sed -e "s|./\(.*\)| \"\\1\",|"
GEN_SRCS_PARSE = [
"fuchsia/developer/plugin/fidl/parser/Parser.java",
"fuchsia/developer/plugin/fidl/psi/FidlAttribute.java",
"fuchsia/developer/plugin/fidl/psi/FidlAttributeList.java",
"fuchsia/developer/plugin/fidl/psi/FidlAttributes.java",
"fuchsia/developer/plugin/fidl/psi/FidlBitsDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlBitsOrEnumMember.java",
"fuchsia/developer/plugin/fidl/psi/FidlBitsOrEnumMemberValue.java",
"fuchsia/developer/plugin/fidl/psi/FidlBracketAttributeList.java",
"fuchsia/developer/plugin/fidl/psi/FidlCompoundIdentifier.java",
"fuchsia/developer/plugin/fidl/psi/FidlConstant.java",
"fuchsia/developer/plugin/fidl/psi/FidlConstDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlDeclarationList.java",
"fuchsia/developer/plugin/fidl/psi/FidlDocAttributeList.java",
"fuchsia/developer/plugin/fidl/psi/FidlEnumDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlHandleSubtype.java",
"fuchsia/developer/plugin/fidl/psi/FidlHandleType.java",
"fuchsia/developer/plugin/fidl/psi/FidlIdentifierToken.java",
"fuchsia/developer/plugin/fidl/psi/FidlIntegralLiteral.java",
"fuchsia/developer/plugin/fidl/psi/FidlLibraryHeader.java",
"fuchsia/developer/plugin/fidl/psi/FidlLiteral.java",
"fuchsia/developer/plugin/fidl/psi/FidlMemberField.java",
"fuchsia/developer/plugin/fidl/psi/FidlNumericLiteral.java",
"fuchsia/developer/plugin/fidl/psi/FidlOrdinal.java",
"fuchsia/developer/plugin/fidl/psi/FidlOrdinalMemberFieldBody.java",
"fuchsia/developer/plugin/fidl/psi/FidlOrdinalMemberField.java",
"fuchsia/developer/plugin/fidl/psi/FidlParameter.java",
"fuchsia/developer/plugin/fidl/psi/FidlParameterList.java",
"fuchsia/developer/plugin/fidl/psi/FidlParameters.java",
"fuchsia/developer/plugin/fidl/psi/FidlProtocolCompose.java",
"fuchsia/developer/plugin/fidl/psi/FidlProtocolDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlProtocolEvent.java",
"fuchsia/developer/plugin/fidl/psi/FidlProtocolMember.java",
"fuchsia/developer/plugin/fidl/psi/FidlProtocolMethod.java",
"fuchsia/developer/plugin/fidl/psi/FidlServiceDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlServiceMember.java",
"fuchsia/developer/plugin/fidl/psi/FidlStructDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlTableDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlTypeAliasDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlTypeConstraint.java",
"fuchsia/developer/plugin/fidl/psi/FidlTypeConstructor.java",
"fuchsia/developer/plugin/fidl/psi/FidlUnionDeclaration.java",
"fuchsia/developer/plugin/fidl/psi/FidlUsing.java",
"fuchsia/developer/plugin/fidl/psi/FidlUsingList.java",
"fuchsia/developer/plugin/fidl/psi/FidlVisitor.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeListImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlAttributesImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlBitsDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlBitsOrEnumMemberImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlBitsOrEnumMemberValueImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlBracketAttributeListImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlCompoundIdentifierImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlConstantImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlConstDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlDeclarationListImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlDocAttributeListImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlEnumDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlHandleSubtypeImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlHandleTypeImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlIdentifierTokenImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlIntegralLiteralImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlLibraryHeaderImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlLiteralImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlMemberFieldImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlNumericLiteralImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlOrdinalImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlOrdinalMemberFieldBodyImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlOrdinalMemberFieldImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlParameterImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlParameterListImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlParametersImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlProtocolComposeImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlProtocolDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlProtocolEventImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlProtocolMemberImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlProtocolMethodImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlServiceDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlServiceMemberImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlStructDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlTableDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlTypeAliasDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlTypeConstraintImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlTypeConstructorImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlUnionDeclarationImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlUsingImpl.java",
"fuchsia/developer/plugin/fidl/psi/impl/FidlUsingListImpl.java",
"fuchsia/developer/plugin/fidl/psi/Types.java",
]
genrule(
name = "fidl_grammar_gen",
srcs = ["Fidl.bnf"],
outs = GEN_SRCS_PARSE,
cmd = "$(location :grammar_kit_bin) $(@D) $<",
tools = [":grammar_kit_bin"],
)
GEN_SRCS = GEN_SRCS_LEX + GEN_SRCS_PARSE
java_library(
name = "fidl",
srcs = GEN_SRCS + glob(["*.java"]) + glob(["psi/*.java"]),
resources = [
"icons/B.png",
"icons/C.png",
"icons/E.png",
"icons/F.png",
"icons/M.png",
"icons/P.png",
"icons/S.png",
"icons/T.png",
"icons/U.png",
"icons/X.png",
"icons/fuchsia-logo-16x16.png",
],
visibility = ["//visibility:public"],
deps = [
"@google_bazel_common//third_party/java/guava",
"@grammar_kit",
"@intellij_ce_2018_3//:annotations",
"@intellij_ce_2018_3//:platform-api",
"@intellij_ce_2018_3//:util",
],
)
filegroup(
name = "icons",
srcs = ["icons/fuchsia-logo-16x16.png"],
visibility = ["//visibility:public"],
)