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()
337 input.parse_error("Expected numbers in array of cells"); in parse_cells()
358 input.next_token(); in parse_cells()
369 property::parse_bytes(text_input_buffer &input) in parse_bytes() argument
371 assert(*input == '['); in parse_bytes()
372 ++input; in parse_bytes()
374 input.next_token(); in parse_bytes()
375 while (!input.consume(']')) in parse_bytes()
382 if (!input.consume_hex_byte(val)) in parse_bytes()
384 input.parse_error("Expected hex bytes in array of bytes"); in parse_bytes()
389 input.next_token(); in parse_bytes()
396 property::parse_reference(text_input_buffer &input) in parse_reference() argument
398 assert(*input == '&'); in parse_reference()
399 ++input; in parse_reference()
400 input.next_token(); in parse_reference()
402 v.string_data = input.parse_node_name(); in parse_reference()
405 input.parse_error("Expected node name"); in parse_reference()
455 void property::parse_define(text_input_buffer &input, define_map *defines) in parse_define() argument
457 input.consume('$'); in parse_define()
460 input.parse_error("No predefined properties to match name\n"); in parse_define()
464 string name = input.parse_property_name(); in parse_define()
469 input.parse_error("Undefined property name\n"); in parse_define()
476 property::property(text_input_buffer &input, in property() argument
483 input.next_token(); in property()
484 switch (*input) in property()
488 parse_define(input, defines); in property()
496 input.parse_error("Invalid property value."); in property()
501 if (input.consume("/incbin/(\"")) in property()
503 auto loc = input.location(); in property()
504 std::string filename = input.parse_to('"'); in property()
505 if (!(valid = input.consume('"'))) in property()
511 if (!(valid = input.read_binary_file(filename, v.byte_data))) in property()
513 input.parse_error("Cannot open binary include file"); in property()
516 if (!(valid &= input.consume(')'))) in property()
518 input.parse_error("Syntax error, expected ')' to terminate /incbin/("); in property()
525 valid = input.consume("/bits/"); in property()
526 input.next_token(); in property()
527 valid &= input.consume_integer(bits); in property()
532 input.parse_error("Invalid size for elements"); in property()
536 input.next_token(); in property()
537 if (*input != '<') in property()
539 input.parse_error("/bits/ directive is only valid on arrays"); in property()
543 parse_cells(input, bits); in property()
547 parse_string(input); in property()
550 parse_cells(input, 32); in property()
553 parse_bytes(input); in property()
556 parse_reference(input); in property()
563 input.next_token(); in property()
564 } while (input.consume(',')); in property()
565 if (semicolonTerminated && !input.consume(';')) in property()
567 input.parse_error("Expected ; at end of property"); in property()
584 property::parse(text_input_buffer &input, string &&key, string_set &&label, in parse() argument
587 property_ptr p(new property(input, in parse()
709 node::parse_name(text_input_buffer &input, bool &is_property, const char *error) in parse_name() argument
715 input.next_token(); in parse_name()
718 return input.parse_property_name(); in parse_name()
720 string n = input.parse_node_or_property_name(is_property); in parse_name()
725 input.parse_error(error); in parse_name()
850 node::node(text_input_buffer &input, in node() argument
858 if (!input.consume('{')) in node()
860 input.parse_error("Expected { to start new device tree node.\n"); in node()
862 input.next_token(); in node()
863 while (valid && !input.consume('}')) in node()
877 input.parse_error(expected); in node()
881 input.next_token(); in node()
882 if (at && input.consume('@')) in node()
885 child_name += parse_name(input, is_property, "Expected unit address"); in node()
887 if (!input.consume(';')) in node()
889 input.parse_error("Expected semicolon"); in node()
893 input.next_token(); in node()
895 if (input.consume("/delete-node/")) in node()
897 input.next_token(); in node()
898 child_name = input.parse_node_name(); in node()
906 if (input.consume("/delete-property/")) in node()
908 input.next_token(); in node()
909 child_name = input.parse_property_name(); in node()
917 if (input.consume("/omit-if-no-ref/")) in node()
919 input.next_token(); in node()
923 child_name = parse_name(input, is_property, in node()
925 while (input.consume(':')) in node()
931 child_name = parse_name(input, is_property, "Expected property or node name"); in node()
933 if (input.consume('@')) in node()
935 child_address = parse_name(input, is_property, "Expected unit address"); in node()
941 input.next_token(); in node()
943 if (input.consume('=')) in node()
945 property_ptr p = property::parse(input, std::move(child_name), in node()
956 else if (!is_property && *input == ('{')) in node()
958 node_ptr child = node::parse(input, tree, std::move(child_name), in node()
970 else if (input.consume(';')) in node()
976 input.parse_error("Error parsing property. Expected property value"); in node()
979 input.next_token(); in node()
981 input.next_token(); in node()
982 input.consume(';'); in node()
1013 node::parse(text_input_buffer &input, in parse() argument
1020 node_ptr n(new node(input, in parse()
1559 device_tree::parse_file(text_input_buffer &input, in parse_file() argument
1563 input.next_token(); in parse_file()
1565 while (input.consume("/dts-v1/;")) in parse_file()
1568 input.next_token(); in parse_file()
1570 if (input.consume("/plugin/;")) in parse_file()
1574 input.next_token(); in parse_file()
1577 input.parse_error("Expected /dts-v1/; version string"); in parse_file()
1580 while (input.consume("/memreserve/")) in parse_file()
1583 input.next_token(); in parse_file()
1585 if (!(input.consume_integer_expression(start) && in parse_file()
1586 (input.next_token(), in parse_file()
1587 input.consume_integer_expression(len)))) in parse_file()
1589 input.parse_error("Expected size on /memreserve/ node."); in parse_file()
1595 input.next_token(); in parse_file()
1596 input.consume(';'); in parse_file()
1597 input.next_token(); in parse_file()
1599 while (valid && !input.finished()) in parse_file()
1602 if (input.consume('/')) in parse_file()
1604 input.next_token(); in parse_file()
1605 n = node::parse(input, *this, string(), string_set(), string(), &defines); in parse_file()
1607 else if (input.consume('&')) in parse_file()
1609 input.next_token(); in parse_file()
1615 if (input.consume('{') && is_plugin) in parse_file()
1617 name = input.parse_to('}'); in parse_file()
1618 input.consume('}'); in parse_file()
1623 name = input.parse_node_name(); in parse_file()
1625 input.next_token(); in parse_file()
1626 n = node::parse(input, *this, std::move(name), string_set(), string(), &defines); in parse_file()
1634 input.parse_error("Failed to find root node /."); in parse_file()
1644 input.next_token(); in parse_file()
1775 input_buffer &input = *in; in parse_dtb() local
1777 valid = h.read_dtb(input); in parse_dtb()
1789 input.buffer_from_offset(h.off_mem_rsvmap, 0); in parse_dtb()
1806 input.buffer_from_offset(h.off_dt_struct, h.size_dt_struct); in parse_dtb()
1808 input.buffer_from_offset(h.off_dt_strings, h.size_dt_strings); in parse_dtb()
1942 text_input_buffer input(std::move(in), in parse_dts() local
1949 parse_file(input, roots, read_header); in parse_dts()
1954 input.parse_error("Failed to find root node /."); in parse_dts()
1961 input.parse_error("Failed to find root node /."); in parse_dts()
1971 input.parse_error("Failed to find root node /."); in parse_dts()