Lines Matching refs:input

258 property::parse_string(text_input_buffer &input)  in parse_string()  argument
261 assert(*input == '"'); in parse_string()
262 ++input; in parse_string()
265 while (char c = *input) in parse_string()
269 input.consume('"'); in parse_string()
274 ++input; in parse_string()
281 property::parse_cells(text_input_buffer &input, int cell_size) in parse_cells() argument
283 assert(*input == '<'); in parse_cells()
284 ++input; in parse_cells()
286 input.next_token(); in parse_cells()
287 while (!input.consume('>')) in parse_cells()
289 input.next_token(); in parse_cells()
292 if (input.consume('&')) in parse_cells()
296 input.parse_error("reference only permitted in 32-bit arrays"); in parse_cells()
300 input.next_token(); in parse_cells()
302 if (!input.consume('{')) in parse_cells()
304 referenced = input.parse_node_name(); in parse_cells()
308 referenced = input.parse_to('}'); in parse_cells()
309 input.consume('}'); in parse_cells()
313 input.parse_error("Expected node name"); in parse_cells()
317 input.next_token(); in parse_cells()
335 if (!input.consume_integer_expression(val)) in parse_cells()
340 input.parse_error("Expected numbers in array of cells"); in parse_cells()
355 input.parse_error(msg.c_str()); in parse_cells()
376 input.next_token(); in parse_cells()
387 property::parse_bytes(text_input_buffer &input) in parse_bytes() argument
389 assert(*input == '['); in parse_bytes()
390 ++input; in parse_bytes()
392 input.next_token(); in parse_bytes()
393 while (!input.consume(']')) in parse_bytes()
400 if (!input.consume_hex_byte(val)) in parse_bytes()
402 input.parse_error("Expected hex bytes in array of bytes"); in parse_bytes()
407 input.next_token(); in parse_bytes()
414 property::parse_reference(text_input_buffer &input) in parse_reference() argument
416 assert(*input == '&'); in parse_reference()
417 ++input; in parse_reference()
418 input.next_token(); in parse_reference()
420 v.string_data = input.parse_node_name(); in parse_reference()
423 input.parse_error("Expected node name"); in parse_reference()
473 void property::parse_define(text_input_buffer &input, define_map *defines) in parse_define() argument
475 input.consume('$'); in parse_define()
478 input.parse_error("No predefined properties to match name\n"); in parse_define()
482 string name = input.parse_property_name(); in parse_define()
487 input.parse_error("Undefined property name\n"); in parse_define()
494 property::property(text_input_buffer &input, in property() argument
501 input.next_token(); in property()
502 switch (*input) in property()
506 parse_define(input, defines); in property()
514 input.parse_error("Invalid property value."); in property()
519 if (input.consume("/incbin/(\"")) in property()
521 auto loc = input.location(); in property()
522 std::string filename = input.parse_to('"'); in property()
523 if (!(valid = input.consume('"'))) in property()
529 if (!(valid = input.read_binary_file(filename, v.byte_data))) in property()
531 input.parse_error("Cannot open binary include file"); in property()
534 if (!(valid &= input.consume(')'))) in property()
536 input.parse_error("Syntax error, expected ')' to terminate /incbin/("); in property()
543 valid = input.consume("/bits/"); in property()
544 input.next_token(); in property()
545 valid &= input.consume_integer(bits); in property()
550 input.parse_error("Invalid size for elements"); in property()
554 input.next_token(); in property()
555 if (*input != '<') in property()
557 input.parse_error("/bits/ directive is only valid on arrays"); in property()
561 parse_cells(input, bits); in property()
565 parse_string(input); in property()
568 parse_cells(input, 32); in property()
571 parse_bytes(input); in property()
574 parse_reference(input); in property()
581 input.next_token(); in property()
582 } while (input.consume(',')); in property()
583 if (semicolonTerminated && !input.consume(';')) in property()
585 input.parse_error("Expected ; at end of property"); in property()
602 property::parse(text_input_buffer &input, string &&key, string_set &&label, in parse() argument
605 property_ptr p(new property(input, in parse()
727 node::parse_name(text_input_buffer &input, bool &is_property, const char *error) in parse_name() argument
733 input.next_token(); in parse_name()
736 return input.parse_property_name(); in parse_name()
738 string n = input.parse_node_or_property_name(is_property); in parse_name()
743 input.parse_error(error); in parse_name()
876 node::node(text_input_buffer &input, in node() argument
884 if (!input.consume('{')) in node()
886 input.parse_error("Expected { to start new device tree node.\n"); in node()
888 input.next_token(); in node()
889 while (valid && !input.consume('}')) in node()
903 input.parse_error(expected); in node()
907 input.next_token(); in node()
908 if (at && input.consume('@')) in node()
911 child_name += parse_name(input, is_property, "Expected unit address"); in node()
913 if (!input.consume(';')) in node()
915 input.parse_error("Expected semicolon"); in node()
919 input.next_token(); in node()
921 if (input.consume("/delete-node/")) in node()
923 input.next_token(); in node()
924 child_name = input.parse_node_name(); in node()
932 if (input.consume("/delete-property/")) in node()
934 input.next_token(); in node()
935 child_name = input.parse_property_name(); in node()
943 if (input.consume("/omit-if-no-ref/")) in node()
945 input.next_token(); in node()
949 child_name = parse_name(input, is_property, in node()
951 while (input.consume(':')) in node()
957 child_name = parse_name(input, is_property, "Expected property or node name"); in node()
959 if (input.consume('@')) in node()
961 child_address = parse_name(input, is_property, "Expected unit address"); in node()
967 input.next_token(); in node()
969 if (input.consume('=')) in node()
971 property_ptr p = property::parse(input, std::move(child_name), in node()
982 else if (!is_property && *input == ('{')) in node()
984 node_ptr child = node::parse(input, tree, std::move(child_name), in node()
996 else if (input.consume(';')) in node()
1002 input.parse_error("Error parsing property. Expected property value"); in node()
1005 input.next_token(); in node()
1007 input.next_token(); in node()
1008 input.consume(';'); in node()
1039 node::parse(text_input_buffer &input, in parse() argument
1052 constructable_node(text_input_buffer &input, in parse()
1057 define_map*m) : node(input, in parse()
1065 node_ptr n{std::make_shared<constructable_node>(input, in parse()
1609 device_tree::parse_file(text_input_buffer &input, in parse_file() argument
1613 input.next_token(); in parse_file()
1615 while (input.consume("/dts-v1/;")) in parse_file()
1618 input.next_token(); in parse_file()
1620 if (input.consume("/plugin/;")) in parse_file()
1624 input.next_token(); in parse_file()
1627 input.parse_error("Expected /dts-v1/; version string"); in parse_file()
1630 while (input.consume("/memreserve/")) in parse_file()
1633 input.next_token(); in parse_file()
1635 if (!(input.consume_integer_expression(start) && in parse_file()
1636 (input.next_token(), in parse_file()
1637 input.consume_integer_expression(len)))) in parse_file()
1639 input.parse_error("Expected size on /memreserve/ node."); in parse_file()
1645 input.next_token(); in parse_file()
1646 input.consume(';'); in parse_file()
1647 input.next_token(); in parse_file()
1649 while (valid && !input.finished()) in parse_file()
1652 if (input.consume("/delete-node/")) in parse_file()
1656 input.next_token(); in parse_file()
1659 if (!input.consume(token)) in parse_file()
1661 input.parse_error(msg); in parse_file()
1664 input.next_token(); in parse_file()
1669 string ref = input.parse_node_name(); in parse_file()
1672 input.parse_error("Expected label name for top-level /delete-node/."); in parse_file()
1683 else if (input.consume('/')) in parse_file()
1685 input.next_token(); in parse_file()
1686 n = node::parse(input, *this, string(), string_set(), string(), &defines); in parse_file()
1688 else if (input.consume('&')) in parse_file()
1690 input.next_token(); in parse_file()
1696 if (input.consume('{') && is_plugin) in parse_file()
1698 name = input.parse_to('}'); in parse_file()
1699 input.consume('}'); in parse_file()
1704 name = input.parse_node_name(); in parse_file()
1706 input.next_token(); in parse_file()
1707 n = node::parse(input, *this, std::move(name), string_set(), string(), &defines); in parse_file()
1715 input.parse_error("Failed to find root node /."); in parse_file()
1725 input.next_token(); in parse_file()
1856 input_buffer &input = *in; in parse_dtb() local
1858 valid = h.read_dtb(input); in parse_dtb()
1870 input.buffer_from_offset(h.off_mem_rsvmap, 0); in parse_dtb()
1887 input.buffer_from_offset(h.off_dt_struct, h.size_dt_struct); in parse_dtb()
1889 input.buffer_from_offset(h.off_dt_strings, h.size_dt_strings); in parse_dtb()
2023 text_input_buffer input(std::move(in), in parse_dts() local
2030 parse_file(input, roots, read_header); in parse_dts()
2035 input.parse_error("Failed to find root node /."); in parse_dts()
2042 input.parse_error("Failed to find root node /."); in parse_dts()
2052 input.parse_error("Failed to find root node /."); in parse_dts()