blob: 6d63dc1e5e3288388386df8d60ca08cf505e0183 [file] [log] [blame]
# 'lexer' contains mostly interfaces and adapters for working with lexers
# in Verible, e.g. those generated by flex.
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
"//common/analysis:__subpackages__",
"//common/parser:__subpackages__",
"//verilog/analysis:__subpackages__",
"//verilog/parser:__subpackages__",
"//verilog/preprocessor:__subpackages__",
],
features = ["layering_check"],
)
cc_library(
name = "token-generator",
hdrs = ["token_generator.h"],
deps = ["//common/text:token-info"],
)
cc_library(
name = "token-stream-adapter",
srcs = ["token_stream_adapter.cc"],
hdrs = ["token_stream_adapter.h"],
deps = [
":lexer",
":token-generator",
"//common/text:token-info",
"//common/text:token-stream-view",
"@com_google_absl//absl/status",
"@com_google_absl//absl/strings:string_view",
],
)
cc_library(
name = "flex-lexer-adapter",
hdrs = ["flex_lexer_adapter.h"],
deps = [
":lexer",
"//common/text:token-info",
"//common/util:logging",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/strings:string_view",
],
)
cc_library(
name = "lexer",
hdrs = ["lexer.h"],
deps = [
"//common/text:token-info",
"@com_google_absl//absl/strings:string_view",
],
)
cc_library(
name = "lexer-test-util",
testonly = 1,
srcs = ["lexer_test_util.cc"],
hdrs = ["lexer_test_util.h"],
deps = [
"//common/text:constants",
"//common/text:token-info",
"//common/text:token-info-test-util",
"//common/util:logging",
"@com_google_absl//absl/strings:string_view",
"@com_google_googletest//:gtest", # for library testonly
],
)
cc_test(
name = "lexer-test-util_test",
srcs = ["lexer_test_util_test.cc"],
deps = [
":lexer-test-util",
"//common/text:constants",
"//common/text:token-info",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:string_view",
"@com_google_googletest//:gtest",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "token-stream-adapter_test",
srcs = ["token_stream_adapter_test.cc"],
deps = [
":lexer",
":lexer-test-util",
":token-stream-adapter",
"//common/text:constants",
"//common/text:token-info",
"//common/text:token-stream-view",
"@com_google_absl//absl/status",
"@com_google_absl//absl/strings:string_view",
"@com_google_googletest//:gtest",
"@com_google_googletest//:gtest_main",
],
)