| # 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_2020_1_4//:sdk", |
| ], |
| ) |
| |
| # These files must be updated manually whenever definitions are added to or |
| # removed from the BNF file. |
| GEN_SRCS_PARSE = [ |
| "fuchsia/developer/plugin/fidl/parser/Parser.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlVisitor.java", |
| "fuchsia/developer/plugin/fidl/psi/Types.java", |
| |
| # One file per BNF construct |
| "fuchsia/developer/plugin/fidl/psi/FidlAttribute.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlAttributes.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlAttributeArg.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlAttributeArgs.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlAttributeSignature.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlAttributeBlock.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/FidlDeclarationModifiers.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlDocComments.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlIdentifierToken.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlInlineLayout.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlIntegralLiteral.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayout.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayoutBody.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayoutDeclaration.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayoutKind.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayoutParameter.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayoutParameters.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlLayoutSubtype.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/FidlOrdinalLayout.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlOrdinalLayoutMember.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlParameterList.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/FidlResourceDeclaration.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlResourceProperties.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlServiceDeclaration.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlServiceMember.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlStructLayout.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlStructLayoutMember.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlTypeAliasDeclaration.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlTypeConstraint.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlTypeConstraints.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlTypeConstructor.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlUsing.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlUsingList.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlValueLayout.java", |
| "fuchsia/developer/plugin/fidl/psi/FidlValueLayoutMember.java", |
| |
| # One impl file per BNF construct |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlAttributesImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeArgImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeArgsImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeSignatureImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlAttributeBlockImpl.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/FidlDeclarationModifiersImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlDocCommentsImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlIdentifierTokenImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlInlineLayoutImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlIntegralLiteralImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutBodyImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutDeclarationImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutKindImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutParameterImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutParametersImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlLayoutSubtypeImpl.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/FidlOrdinalLayoutImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlOrdinalLayoutMemberImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlParameterListImpl.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/FidlResourceDeclarationImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlResourcePropertiesImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlServiceDeclarationImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlServiceMemberImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlStructLayoutImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlStructLayoutMemberImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlTypeAliasDeclarationImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlTypeConstraintImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlTypeConstraintsImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlTypeConstructorImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlUsingImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlUsingListImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlValueLayoutImpl.java", |
| "fuchsia/developer/plugin/fidl/psi/impl/FidlValueLayoutMemberImpl.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.svg", |
| "icons/fuchsia-logo@2x.svg", |
| "icons/fuchsia-logo@2x_dark.svg", |
| "icons/fuchsia-logo_dark.svg", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "@google_bazel_common//third_party/java/guava", |
| "@grammar_kit", |
| "@intellij_ce_2020_1_4//:annotations", |
| "@intellij_ce_2020_1_4//:platform-api", |
| "@intellij_ce_2020_1_4//:util", |
| ], |
| ) |
| |
| filegroup( |
| name = "icons", |
| srcs = [ |
| "icons/fuchsia-logo.svg", |
| "icons/fuchsia-logo@2x.svg", |
| "icons/fuchsia-logo@2x_dark.svg", |
| "icons/fuchsia-logo_dark.svg", |
| ], |
| visibility = ["//visibility:public"], |
| ) |