github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/schema/ridl/definition_parser.go (about)

     1  package ridl
     2  
     3  func parserStateDefinitionValue(dn *DefinitionNode) parserState {
     4  	return func(p *parser) parserState {
     5  		value, err := p.expectLiteralValue()
     6  		if err != nil {
     7  			return p.stateError(err)
     8  		}
     9  
    10  		dn.rightNode = newTokenNode(value)
    11  
    12  		p.emit(dn)
    13  
    14  		return parserStateEOL
    15  	}
    16  }
    17  
    18  func parserStateDefinition(p *parser) parserState {
    19  	// <word><space>=<space>[<# comment>]<EOL>
    20  	tokens, err := p.match(tokenWord, tokenWhitespace, tokenEqual, tokenWhitespace)
    21  	if err != nil {
    22  		return p.stateError(err)
    23  	}
    24  
    25  	return parserStateDefinitionValue(&DefinitionNode{
    26  		leftNode: newTokenNode(tokens[0]),
    27  	})
    28  }