tree-sitter-phpdoc
Version:
PHPDoc grammar for tree-sitter
475 lines (440 loc) • 9.46 kB
Plain Text
=====================
@author
=====================
/**
* @author Foo Bar
* @author F. Bar
* @author F. Bar <f@bar.com>
*/
(document
(tag (tag_name) (author_name))
(tag (tag_name) (author_name))
(tag (tag_name) (author_name) (email_address)))
=====================
@param
=====================
/**
* @param $foo
*/
(document (tag (tag_name) (variable_name (name))))
=====================
@param w/ description
=====================
/**
* @param $foo description
*/
(document
(tag
(tag_name)
(variable_name (name))
(description (text))))
=====================
@param w/ primitive type
=====================
/**
* @param int $foo
*/
(document
(tag
(tag_name)
(type_list (primitive_type))
(variable_name (name))))
=====================
@param w/ primitive list type
=====================
/**
* @param int|string $foo
*/
(document
(tag
(tag_name)
(type_list (primitive_type) (primitive_type))
(variable_name (name))))
=====================
@param w/ primitive array type
=====================
/**
* @param int[] $foo
*/
(document
(tag
(tag_name)
(type_list (array_type (primitive_type)))
(variable_name (name))))
=====================
@param w/ primitive array & list type
=====================
/**
* @param int[]|string[]|float $foo
*/
(document
(tag
(tag_name)
(type_list
(array_type (primitive_type))
(array_type (primitive_type))
(primitive_type))
(variable_name (name))))
=====================
@param w/ primitive type & description
=====================
/**
* @param int $foo description
*/
(document
(tag
(tag_name)
(type_list (primitive_type))
(variable_name (name))
(description (text))))
=====================
@param w/ primitive list type & description
=====================
/**
* @param int|string $foo description
*/
(document
(tag
(tag_name)
(type_list (primitive_type) (primitive_type))
(variable_name (name))
(description (text))))
=====================
@param w/ named type
=====================
/**
* @param MyClass $foo
*/
(document
(tag
(tag_name)
(type_list (named_type (name)))
(variable_name (name))))
=====================
@param w/ qualified type
=====================
/**
* @param MyPackage\MyClass $foo
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(variable_name (name))))
=====================
@param w/ qualified type & description
=====================
/**
* @param MyPackage\MyClass $foo bar baz
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(variable_name (name))
(description (text))))
=====================
@param w/ global qualified type
=====================
/**
* @param \MyPackage\MyClass $foo
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(variable_name (name))))
=====================
@param w/ global qualified type & description
=====================
/**
* @param \MyPackage\MyClass $foo bar baz
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(variable_name (name))
(description (text))))
=====================
@return w/ primitive type
=====================
/**
* @return int
*/
(document
(tag
(tag_name)
(type_list (primitive_type))))
=====================
@return w/ primitive type & description
=====================
/**
* @return int $foo description
*/
(document
(tag
(tag_name)
(type_list (primitive_type))
(description (text))))
=====================
@return w/ named type
=====================
/**
* @return MyClass
*/
(document
(tag
(tag_name)
(type_list (named_type (name)))))
=====================
@return w/ qualified type
=====================
/**
* @return MyPackage\MyClass
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)))
=====================
@return w/ qualified type & description
=====================
/**
* @return MyPackage\MyClass foo bar
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(description (text))))
=====================
@return w/ global qualified type
=====================
/**
* @return \MyPackage\MyClass
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)))
=====================
@return w/ global qualified type & description
=====================
/**
* @return \MyPackage\MyClass foo bar
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(description (text))))
=====================
@return w/ global qualified type & description w/ backslash
=====================
/**
* @return \MyPackage\MyClass foo\bar
*/
(document
(tag
(tag_name)
(type_list
(named_type (qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))
)
(description (text))))
=====================
@api
=====================
/**
* @api
*/
(document (tag (tag_name)))
=====================
@var
=====================
/** @var int $foo */
(document (tag (tag_name) (type_list (primitive_type)) (variable_name (name))))
=====================
@var w/ description
=====================
/** @var int $foo bar baz */
(document
(tag
(tag_name)
(type_list (primitive_type))
(variable_name (name))
(description (text))))
=====================
@var w/o variable name
=====================
/** @var int bar baz */
(document
(tag
(tag_name)
(type_list (primitive_type))
(description (text))))
=====================
@var w/ named type
=====================
/** @var MyClass $foo */
(document (tag (tag_name) (type_list (named_type (name))) (variable_name (name))))
=====================
@var w/ namespaced type
=====================
/** @var MyNameSpace\MyClass $foo */
(document
(tag
(tag_name)
(type_list
(named_type
(qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name))))
(variable_name (name))))
=====================
@var w/ primitive array type
=====================
/** @var int[] $foo */
(document
(tag
(tag_name)
(type_list (array_type (primitive_type)))
(variable_name (name))))
=====================
@var w/ multidimensional primitive array type
=====================
/** @var int[][] $foo */
(document
(tag
(tag_name)
(type_list (array_type (primitive_type)))
(variable_name (name))))
=====================
@var w/ multiple primitive array type
=====================
/** @var int[]|string[]|null $foo */
(document
(tag
(tag_name)
(type_list
(array_type (primitive_type))
(array_type (primitive_type))
(primitive_type))
(variable_name (name))))
=====================
@var w/ named array type
=====================
/** @var MyNameSpace\MyClass[] $foo */
(document
(tag
(tag_name)
(type_list
(array_type
(named_type
(qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name)))))
(variable_name (name))))
=====================
@var w/ multiple named array type (plus primitive)
=====================
/** @var MyNameSpace\MyClass[]|MyNameSpace\MyOtherClass[]|null $foo */
(document
(tag
(tag_name)
(type_list
(array_type (named_type
(qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name))))
(array_type (named_type
(qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name))))
(primitive_type))
(variable_name (name))))
=====================
@method
=====================
/** @method MyNameSpace\MyClass methodName(int $param) */
(document
(tag
(tag_name)
(type_list
(named_type
(qualified_name
(namespace_name_as_prefix (namespace_name (name)))
(name))))
(name)
(parameters
(parameter
(type_list (primitive_type))
(variable_name (name))))))