code: func parseVariable(parser *Parser) (*ast.Variable, error) {
  	var (
  		err  error
  		name *ast.Name
  	)
  	start := parser.Token.Start
  	if _, err = expect(parser, lexer.DOLLAR); err != nil {
  		return nil, err
  	}
  	if name, err = parseName(parser); err != nil {
  		return nil, err
  	}
  	return ast.NewVariable(&ast.Variable{
  		Name: name,
  		Loc:  loc(parser, start),
  	}), nil
  }
docs: /**
   * Variable : $ Name
   */