Skip to content

Python module, parses PHP source and finds class/function/namespace declarations

License

Notifications You must be signed in to change notification settings

Alexey-T/pyPhpTree

Repository files navigation

pyPhpTree module

Module for Python 3. Tiny parser of PHP source code, which finds lines with class/function/namespace/trait declarations. It reads PHP code only inside <? ... ?> tags (any count of fragments in one file), and outside of /* ... */ and // ... comments, and outside of single/double-quoted strings (multi-line strings supported, escape backslash supported), and outside of heredoc/herenow blocks.

API

Function get_headers(filename, lines) finds all entities, in given "lines" list, and gets dicts:

{
  'line': int,      # 0-based line index, where name found
  'col': int,       # 0-based position in line, where name found
  'level': int,     # 0-based level of item. each item of level K+1
                    # is nested into (nearest upper) item of level K
  'name': str,      # name of entity
                    # empty for anonymous funcs
  'kind': str,      # "class", "function", "namespace", "trait"
}

It's generator (yield), so to get list, use list(get_headers(...)).

About

  • Author: Alexey Torgashin, UVviewsoft.com
  • License: Mozilla Public License 2.0 (MPL-2.0)

About

Python module, parses PHP source and finds class/function/namespace declarations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published