MCPcopy Create free account
hub / github.com/brettlangdon/forge / parseSettingValue

Method parseSettingValue

parser.go:146–206  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

144}
145
146func (parser *Parser) parseSettingValue() (Value, error) {
147 var value Value
148
149 readNext := true
150 switch parser.curTok.ID {
151 case token.STRING:
152 value = NewString(parser.curTok.Literal)
153 case token.BOOLEAN:
154 boolVal, err := strconv.ParseBool(parser.curTok.Literal)
155 if err != nil {
156 return value, nil
157 }
158 value = NewBoolean(boolVal)
159 case token.NULL:
160 value = NewNull()
161 case token.INTEGER:
162 intVal, err := strconv.ParseInt(parser.curTok.Literal, 10, 64)
163 if err != nil {
164 return value, err
165 }
166 value = NewInteger(intVal)
167 case token.FLOAT:
168 floatVal, err := strconv.ParseFloat(parser.curTok.Literal, 64)
169 if err != nil {
170 return value, err
171 }
172 value = NewFloat(floatVal)
173 case token.PERIOD:
174 reference, err := parser.parseReference(parser.curSection, true)
175 if err != nil {
176 return value, err
177 }
178 value = reference
179 readNext = false
180 case token.IDENTIFIER:
181 reference, err := parser.parseReference(parser.settings, false)
182 if err != nil {
183 return value, err
184 }
185 value = reference
186 readNext = false
187 case token.LBRACKET:
188 parser.readToken()
189 listVal, err := parser.parseList()
190 if err != nil {
191 return value, err
192 }
193 value = NewList()
194 value.UpdateValue(listVal)
195 readNext = false
196 default:
197 return value, parser.syntaxError(
198 fmt.Sprintf("expected STRING, INTEGER, FLOAT, BOOLEAN or IDENTIFIER, instead found %s", parser.curTok.ID),
199 )
200 }
201
202 if readNext {
203 parser.readToken()

Callers 2

parseListMethod · 0.95
parseSettingMethod · 0.95

Calls 11

parseReferenceMethod · 0.95
readTokenMethod · 0.95
parseListMethod · 0.95
UpdateValueMethod · 0.95
syntaxErrorMethod · 0.95
NewStringFunction · 0.85
NewBooleanFunction · 0.85
NewNullFunction · 0.85
NewIntegerFunction · 0.85
NewFloatFunction · 0.85
NewListFunction · 0.85

Tested by

no test coverage detected