Class: RBS::Inline::AnnotationParser
- Inherits:
-
Object
- Object
- RBS::Inline::AnnotationParser
- Includes:
- Tokens
- Defined in:
- lib/rbs/inline/annotation_parser.rb,
lib/rbs/inline/annotation_parser/tokenizer.rb
Defined Under Namespace
Modules: Tokens Classes: ParsingResult, Tokenizer
Constant Summary
Constants included from Tokens
Tokens::K_AMP, Tokens::K_ARROW, Tokens::K_AS, Tokens::K_CLASS, Tokens::K_COLON, Tokens::K_COLON2, Tokens::K_COMMA, Tokens::K_DOT, Tokens::K_DOT3, Tokens::K_EOF, Tokens::K_GENERIC, Tokens::K_IN, Tokens::K_INHERITS, Tokens::K_LBRACE, Tokens::K_LBRACKET, Tokens::K_LPAREN, Tokens::K_LT, Tokens::K_MINUS2, Tokens::K_MODULE, Tokens::K_MODULE_SELF, Tokens::K_OUT, Tokens::K_OVERRIDE, Tokens::K_QUESTION, Tokens::K_RBRACKET, Tokens::K_RBS, Tokens::K_RBSE, Tokens::K_RETURN, Tokens::K_SELF, Tokens::K_SKIP, Tokens::K_STAR, Tokens::K_STAR2, Tokens::K_UNCHECKED, Tokens::K_USE, Tokens::K_VBAR, Tokens::K_YIELDS, Tokens::T_ANNOTATION, Tokens::T_ATIDENT, Tokens::T_BLOCKSTR, Tokens::T_COMMENT, Tokens::T_ELVAR, Tokens::T_IFIDENT, Tokens::T_LVAR, Tokens::T_SOURCE, Tokens::T_UIDENT, Tokens::T_WHITESPACE
Instance Attribute Summary collapse
-
#input ⇒ Object
readonly
: Array.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(input) ⇒ AnnotationParser
constructor
A new instance of AnnotationParser.
- #parse ⇒ Object
Constructor Details
#initialize(input) ⇒ AnnotationParser
Returns a new instance of AnnotationParser.
108 109 110 |
# File 'lib/rbs/inline/annotation_parser.rb', line 108 def initialize(input) #: void @input = input end |
Instance Attribute Details
#input ⇒ Object (readonly)
: Array
105 106 107 |
# File 'lib/rbs/inline/annotation_parser.rb', line 105 def input @input end |
Class Method Details
.parse(input) ⇒ Object
114 115 116 |
# File 'lib/rbs/inline/annotation_parser.rb', line 114 def self.parse(input) new(input).parse end |
Instance Method Details
#parse ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/rbs/inline/annotation_parser.rb', line 119 def parse results = [] #: Array[ParsingResult] first_comment, *rest = input first_comment or return results result = ParsingResult.new(first_comment) results << result rest.each do |comment| unless result.add_comment(comment) result = ParsingResult.new(comment) results << result end end results.each do |result| each_annotation_paragraph(result) do |comments, annotation| lines = AST::CommentLines.new(comments) if annotation && annot = parse_annotation(lines) result.annotations << annot else result.annotations << lines end end end results end |