/
githubmirror
/
julia
Обзор
Документация
Войти
/
githubmirror
/
julia
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
JuliaSyntax/src/JuliaSyntax.jl
112 строк
2 KB
Em Chu
[JuliaLowering] Make `SyntaxTree` a standard tree (#62474)
29 июл 2026, 15:34
Не верифицирован
29 июл 2026, 15:34
92cca2d
Код
Авторство
О чём код?
module JuliaSyntax macro _public(syms) if VERSION >= v"1.11" names = syms isa Symbol ? [syms] : syms.args esc(Expr(:public, names...)) else nothing end end # Public API, in the order of docs/src/api.md # Parsing. export parseall, parseatom, parsestmt @_public parse!, ParseStream, build_tree # Tokenization export Token, tokenize, untokenize # Source file handling @_public sourcefile, byte_range, char_range, first_byte, last_byte, filename, source_line, source_location, sourcetext, highlight export SourceFile @_public source_line_range # Expression predicates, kinds and flags export @K_str, kind @_public Kind @_public PrecedenceLevel, PREC_NONE, PREC_ASSIGNMENT, PREC_PAIRARROW, PREC_CONDITIONAL, PREC_ARROW, PREC_LAZYOR, PREC_LAZYAND, PREC_COMPARISON, PREC_PIPE_LT, PREC_PIPE_GT, PREC_COLON, PREC_PLUS, PREC_BITSHIFT, PREC_TIMES, PREC_RATIONAL, PREC_POWER, PREC_DECL, PREC_WHERE, PREC_DOT, PREC_QUOTE, PREC_UNICODE_OPS, PREC_COMPOUND_ASSIGN, generic_operators_by_level @_public flags, SyntaxHead, head, is_trivia, is_prefix_call, is_infix_op_call, is_prefix_op_call, is_postfix_op_call, is_dotted, is_decorated, numeric_flags, has_flags, TRIPLE_STRING_FLAG, RAW_STRING_FLAG, PARENS_FLAG, COLON_QUOTE, TOPLEVEL_SEMICOLONS_FLAG, MUTABLE_FLAG, BARE_MODULE_FLAG, SHORT_FORM_FUNCTION_FLAG # Syntax trees @_public is_leaf, numchildren, children export SyntaxNode @_public GreenNode, RedTreeCursor, GreenTreeCursor, span # Helper utilities include("utils.jl") include("julia/kinds.jl") # Lexing uses a significantly modified version of Tokenize.jl include("julia/tokenize.jl") # Source and diagnostics include("core/source_files.jl") include("core/diagnostics.jl") # Parsing include("core/parse_stream.jl") include("core/tree_cursors.jl") include("julia/julia_parse_stream.jl") include("julia/parser.jl") include("julia/parser_api.jl") include("julia/literal_parsing.jl") # Tree data structures include("porcelain/green_node.jl") include("porcelain/syntax_node.jl") include("integration/expr.jl") if VERSION >= v"1.12" include("porcelain/syntax.jl") end # Hooks to integrate the parser with Base include("integration/hooks.jl") include("precompile.jl") end