Lines Matching defs:cfile

95 void skip_to_semi (cfile)
96 struct parse *cfile;
98 skip_to_rbrace (cfile, 0);
101 void skip_to_rbrace (cfile, brace_count)
102 struct parse *cfile;
112 token = peek_token (&val, (unsigned *)0, cfile);
114 token = next_token (&val, (unsigned *)0, cfile);
123 token = next_token (&val, (unsigned *)0, cfile);
129 token = next_token (&val, (unsigned *)0, cfile);
132 token = next_token (&val, (unsigned *)0, cfile);
136 int parse_semi (cfile)
137 struct parse *cfile;
142 token = next_token (&val, (unsigned *)0, cfile);
144 parse_warn (cfile, "semicolon expected.");
145 skip_to_semi (cfile);
153 int parse_string (cfile, sptr, lptr)
154 struct parse *cfile;
163 token = next_token (&val, &len, cfile);
165 parse_warn (cfile, "expecting a string");
166 skip_to_semi (cfile);
174 if (!parse_semi (cfile)) {
193 char *parse_host_name (cfile)
194 struct parse *cfile;
207 token = peek_token (&val, (unsigned *)0, cfile);
210 token = next_token (&val, (unsigned *)0, cfile);
220 token = peek_token (&val, (unsigned *)0, cfile);
222 token = next_token (&val, (unsigned *)0, cfile);
261 int parse_ip_addr_or_hostname (expr, cfile, uniform)
263 struct parse *cfile;
273 token = peek_token (&val, (unsigned *)0, cfile);
275 name = parse_host_name (cfile);
290 if (!parse_numeric_aggregate (cfile, addr, &len, DOT, 10, 8))
295 token = next_token (&val, (unsigned *)0, cfile);
296 parse_warn (cfile, "%s (%d): expecting IP address or hostname",
299 skip_to_semi (cfile);
310 int parse_ip_addr (cfile, addr)
311 struct parse *cfile;
316 if (parse_numeric_aggregate (cfile, addr -> iabuf,
327 void parse_hardware_param (cfile, hardware)
328 struct parse *cfile;
336 token = next_token (&val, (unsigned *)0, cfile);
351 parse_warn (cfile,
353 skip_to_semi (cfile);
367 token = peek_token (&val, (unsigned *)0, cfile);
372 t = parse_numeric_aggregate (cfile, (unsigned char *)0, &hlen,
380 parse_warn (cfile, "hardware address too long");
391 token = next_token (&val, (unsigned *)0, cfile);
393 parse_warn (cfile, "expecting semicolon.");
394 skip_to_semi (cfile);
400 void parse_lease_time (cfile, timep)
401 struct parse *cfile;
407 token = next_token (&val, (unsigned *)0, cfile);
409 parse_warn (cfile, "Expecting numeric lease time");
410 skip_to_semi (cfile);
413 convert_num (cfile, (unsigned char *)timep, val, 10, 32);
417 parse_semi (cfile);
427 unsigned char *parse_numeric_aggregate (cfile, buf,
429 struct parse *cfile;
452 token = peek_token (&val, (unsigned *)0, cfile);
459 cfile);
460 parse_warn (cfile, "too few numbers.");
462 skip_to_semi (cfile);
465 token = next_token (&val, (unsigned *)0, cfile);
467 token = next_token (&val, (unsigned *)0, cfile);
470 parse_warn (cfile, "unexpected end of file");
477 parse_warn (cfile, "expecting numeric value.");
478 skip_to_semi (cfile);
484 convert_num (cfile, s, val, base, size);
505 convert_num (cfile, s, (char *)(c -> car), base, size);
515 void convert_num (cfile, buf, str, base, size)
516 struct parse *cfile;
560 parse_warn (cfile, "Bogus number: %s.", str);
564 parse_warn (cfile,
579 parse_warn (cfile,
585 parse_warn (cfile,
591 parse_warn (cfile,
611 parse_warn (cfile,
627 parse_warn (cfile,
647 TIME parse_date (cfile)
648 struct parse *cfile;
658 token = next_token (&val, (unsigned *)0, cfile);
660 if (!parse_semi (cfile))
666 parse_warn (cfile, "numeric day of week expected.");
668 skip_to_semi (cfile);
674 token = next_token (&val, (unsigned *)0, cfile);
676 parse_warn (cfile, "numeric year expected.");
678 skip_to_semi (cfile);
691 token = next_token (&val, (unsigned *)0, cfile);
693 parse_warn (cfile,
696 skip_to_semi (cfile);
701 token = next_token (&val, (unsigned *)0, cfile);
703 parse_warn (cfile, "numeric month expected.");
705 skip_to_semi (cfile);
711 token = next_token (&val, (unsigned *)0, cfile);
713 parse_warn (cfile,
716 skip_to_semi (cfile);
721 token = next_token (&val, (unsigned *)0, cfile);
723 parse_warn (cfile, "numeric day of month expected.");
725 skip_to_semi (cfile);
731 token = next_token (&val, (unsigned *)0, cfile);
733 parse_warn (cfile, "numeric hour expected.");
735 skip_to_semi (cfile);
741 token = next_token (&val, (unsigned *)0, cfile);
743 parse_warn (cfile,
746 skip_to_semi (cfile);
751 token = next_token (&val, (unsigned *)0, cfile);
753 parse_warn (cfile, "numeric minute expected.");
755 skip_to_semi (cfile);
761 token = next_token (&val, (unsigned *)0, cfile);
763 parse_warn (cfile,
766 skip_to_semi (cfile);
771 token = next_token (&val, (unsigned *)0, cfile);
773 parse_warn (cfile, "numeric minute expected.");
775 skip_to_semi (cfile);
780 token = peek_token (&val, (unsigned *)0, cfile);
782 token = next_token (&val, (unsigned *)0, cfile);
788 if (!parse_semi (cfile))
820 struct option *parse_option_name (cfile, allocate, known)
821 struct parse *cfile;
831 token = next_token (&val, (unsigned *)0, cfile);
833 parse_warn (cfile,
836 skip_to_semi (cfile);
843 token = peek_token (&val, (unsigned *)0, cfile);
846 token = next_token (&val, (unsigned *)0, cfile);
849 token = next_token (&val, (unsigned *)0, cfile);
851 parse_warn (cfile, "expecting identifier after '.'");
853 skip_to_semi (cfile);
862 parse_warn (cfile, "no option space named %s.", uname);
863 skip_to_semi (cfile);
904 parse_warn (cfile, "no option named %s", val);
906 parse_warn (cfile, "no option named %s in space %s",
908 skip_to_semi (cfile);
919 void parse_option_space_decl (cfile)
920 struct parse *cfile;
927 next_token (&val, (unsigned *)0, cfile); /* Discard the SPACE token,
930 token = next_token (&val, (unsigned *)0, cfile);
932 parse_warn (cfile, "expecting identifier.");
933 skip_to_semi (cfile);
973 parse_semi (cfile);
1009 int parse_option_code_definition (cfile, option)
1010 struct parse *cfile;
1026 token = next_token (&val, (unsigned *)0, cfile);
1028 parse_warn (cfile, "expecting option code number.");
1029 skip_to_semi (cfile);
1034 token = next_token (&val, (unsigned *)0, cfile);
1036 parse_warn (cfile, "expecting \"=\"");
1037 skip_to_semi (cfile);
1042 token = next_token (&val, (unsigned *)0, cfile);
1044 token = next_token (&val, (unsigned *)0, cfile);
1046 parse_warn (cfile, "expecting \"of\".");
1047 skip_to_semi (cfile);
1051 token = next_token (&val, (unsigned *)0, cfile);
1056 token = next_token (&val, (unsigned *)0, cfile);
1062 parse_warn (cfile,
1064 skip_to_semi (cfile);
1071 parse_warn (cfile, "no nested arrays.");
1072 skip_to_rbrace (cfile, recordp);
1074 skip_to_semi (cfile);
1077 token = next_token (&val, (unsigned *)0, cfile);
1079 parse_warn (cfile, "expecting \"of\".");
1080 skip_to_semi (cfile);
1084 token = next_token (&val, (unsigned *)0, cfile);
1086 parse_warn (cfile,
1088 skip_to_rbrace (cfile, recordp + 1);
1089 skip_to_semi (cfile);
1099 token = next_token (&val, (unsigned *)0, cfile);
1101 parse_warn (cfile, "expecting number.");
1102 skip_to_rbrace (cfile, recordp);
1104 skip_to_semi (cfile);
1118 parse_warn (cfile,
1120 skip_to_rbrace (cfile, recordp);
1122 skip_to_semi (cfile);
1129 token = next_token (&val, (unsigned *)0, cfile);
1131 parse_warn (cfile, "expecting \"integer\" keyword.");
1132 skip_to_rbrace (cfile, recordp);
1134 skip_to_semi (cfile);
1152 parse_warn (cfile, "arrays of text strings not %s",
1154 skip_to_rbrace (cfile, recordp);
1156 skip_to_semi (cfile);
1166 token = next_token (&val, (unsigned *)0, cfile);
1168 parse_warn (cfile,
1170 skip_to_semi (cfile);
1183 parse_warn (cfile, "unknown data type %s", val);
1184 skip_to_rbrace (cfile, recordp);
1186 skip_to_semi (cfile);
1192 parse_warn (cfile, "too many types in record.");
1193 skip_to_rbrace (cfile, recordp);
1195 skip_to_semi (cfile);
1201 token = next_token (&val, (unsigned *)0, cfile);
1204 parse_warn (cfile,
1206 skip_to_rbrace (cfile, 1);
1207 skip_to_semi (cfile);
1215 parse_warn (cfile,
1218 skip_to_rbrace (cfile, 1);
1220 skip_to_semi (cfile);
1223 token = next_token (&val, (unsigned *)0, cfile);
1227 parse_warn (cfile, "expecting right brace.");
1228 skip_to_rbrace (cfile, 1);
1230 skip_to_semi (cfile);
1234 if (!parse_semi (cfile)) {
1235 parse_warn (cfile, "semicolon expected.");
1236 skip_to_semi (cfile);
1238 skip_to_semi (cfile);
1242 parse_warn (cfile,
1276 int parse_base64 (data, cfile)
1278 struct parse *cfile;
1309 token = next_token (&val, &l, cfile);
1321 token = peek_token (&val, (unsigned *)0, cfile);
1329 parse_warn (cfile, "can't allocate buffer for base64 data.");
1340 parse_warn (cfile,
1347 parse_warn (cfile,
1384 parse_warn (cfile,
1408 int parse_cshl (data, cfile)
1410 struct parse *cfile;
1422 token = next_token (&val, (unsigned *)0, cfile);
1424 parse_warn (cfile, "expecting hexadecimal number.");
1425 skip_to_semi (cfile);
1444 convert_num (cfile, &ibuf [ilen++], val, 16, 8);
1446 token = peek_token (&val, (unsigned *)0, cfile);
1449 token = next_token (&val, (unsigned *)0, cfile);
1485 int parse_executable_statements (statements, cfile, lose, case_context)
1487 struct parse *cfile;
1494 while (parse_executable_statement (next, cfile, lose, case_context))
1501 int parse_executable_statement (result, cfile, lose, case_context)
1503 struct parse *cfile;
1519 token = peek_token (&val, (unsigned *)0, cfile);
1522 next_token (&val, (unsigned *)0, cfile);
1523 return parse_if_statement (result, cfile, lose);
1526 token = next_token (&val, (unsigned *)0, cfile);
1527 token = next_token (&val, (unsigned *)0, cfile);
1529 parse_warn (cfile, "expecting class name.");
1530 skip_to_semi (cfile);
1537 parse_warn (cfile, "class %s: %s",
1539 skip_to_semi (cfile);
1543 if (!parse_semi (cfile)) {
1554 token = next_token (&val, (unsigned *)0, cfile);
1555 if (!parse_semi (cfile)) {
1565 token = next_token (&val, (unsigned *)0, cfile);
1567 option = parse_option_name (cfile, 0, &known);
1572 return parse_option_statement (result, cfile, 1, option,
1577 token = next_token (&val, (unsigned *)0, cfile);
1579 option = parse_option_name (cfile, 0, &known);
1584 return parse_option_statement (result, cfile, 1, option,
1596 token = next_token (&val, (unsigned *)0, cfile);
1598 if (!parse_allow_deny (&cache, cfile, flag))
1607 token = next_token (&val, (unsigned *)0, cfile);
1608 token = peek_token (&val, (unsigned *)0, cfile);
1612 option = parse_option_name (cfile, 0, &known);
1617 return parse_option_statement (result, cfile, 1, option,
1621 token = next_token (&val, (unsigned *)0, cfile);
1623 option = parse_option_name (cfile, 0, &known);
1628 return parse_option_statement (result, cfile, 1, option,
1632 token = next_token (&val, (unsigned *)0, cfile);
1634 option = parse_option_name (cfile, 0, &known);
1639 return parse_option_statement (result, cfile, 1, option,
1643 token = next_token (&val, (unsigned *)0, cfile);
1644 return parse_on_statement (result, cfile, lose);
1647 token = next_token (&val, (unsigned *)0, cfile);
1648 return parse_switch_statement (result, cfile, lose);
1651 token = next_token (&val, (unsigned *)0, cfile);
1653 parse_warn (cfile,
1656 skip_to_semi (cfile);
1660 cfile, lose, case_context);
1663 token = next_token (&val, (unsigned *)0, cfile);
1665 parse_warn (cfile, "switch default statement in %s",
1679 token = next_token (&val, (unsigned *)0, cfile);
1685 token = next_token (&val, (unsigned *)0, cfile);
1687 parse_warn (cfile,
1690 skip_to_semi (cfile);
1702 token = next_token (&val, (unsigned *)0, cfile);
1710 (unsigned *)0, cfile);
1714 parse_warn (cfile,
1716 skip_to_rbrace (cfile, 0);
1736 (unsigned *)0, cfile);
1740 parse_warn (cfile, "expecting right paren.");
1742 skip_to_semi (cfile);
1748 token = next_token (&val, (unsigned *)0, cfile);
1750 parse_warn (cfile, "expecting left brace.");
1764 (&expr -> data.func -> statements, cfile, lose,
1770 token = next_token (&val, (unsigned *)0, cfile);
1772 parse_warn (cfile, "expecting rigt brace.");
1777 parse_warn (cfile,
1784 cfile, lose, context_any,
1788 parse_warn (cfile,
1792 skip_to_semi (cfile);
1796 if (!parse_semi (cfile)) {
1805 token = next_token (&val, (unsigned *)0, cfile);
1807 token = next_token (&val, (unsigned *)0, cfile);
1809 parse_warn (cfile,
1811 skip_to_semi (cfile);
1823 if (!parse_semi (cfile)) {
1831 token = next_token (&val, (unsigned *)0, cfile);
1838 cfile, lose, context_data, /* XXX */
1841 parse_warn (cfile,
1845 skip_to_semi (cfile);
1849 if (!parse_semi (cfile)) {
1856 token = next_token (&val, (unsigned *)0, cfile);
1863 cfile, lose, context_data,
1866 parse_warn (cfile,
1870 skip_to_semi (cfile);
1874 if (!parse_semi (cfile)) {
1882 token = next_token (&val, (unsigned *)0, cfile);
1888 token = next_token (&val, (unsigned *)0, cfile);
1890 parse_warn (cfile, "left parenthesis expected.");
1891 skip_to_semi (cfile);
1896 token = peek_token (&val, (unsigned *)0, cfile);
1911 token = next_token (&val, (unsigned *)0, cfile);
1912 token = next_token (&val, (unsigned *)0, cfile);
1914 parse_warn (cfile, "comma expected.");
1915 skip_to_semi (cfile);
1922 (&(*result) -> data.log.expr, cfile, lose))) {
1923 skip_to_semi (cfile);
1928 token = next_token (&val, (unsigned *)0, cfile);
1930 parse_warn (cfile, "right parenthesis expected.");
1931 skip_to_semi (cfile);
1936 token = next_token (&val, (unsigned *)0, cfile);
1938 parse_warn (cfile, "semicolon expected.");
1939 skip_to_semi (cfile);
1949 token = next_token (&val, (unsigned *)0, cfile);
1953 zone -> name = parse_host_name (cfile);
1955 parse_warn (cfile, "expecting hostname.");
1958 skip_to_semi (cfile);
1966 parse_warn (cfile, "no trailing '.' on zone");
1975 if (!parse_zone (zone, cfile))
1979 parse_warn (cfile, "dns zone key %s: %s",
1990 token = next_token (&val, (unsigned *)0, cfile);
1991 if (!parse_key (cfile)) {
2005 (unsigned *)0, cfile);
2007 (result, cfile, 1, option,
2020 cfile, lose, context_data,
2024 parse_warn (cfile, "expecting "
2028 skip_to_semi (cfile);
2032 if (!parse_semi (cfile)) {
2058 int parse_zone (struct dns_zone *zone, struct parse *cfile)
2066 token = next_token (&val, (unsigned *)0, cfile);
2068 parse_warn (cfile, "expecting left brace");
2073 token = peek_token (&val, (unsigned *)0, cfile);
2077 parse_warn (cfile,
2079 skip_to_semi (cfile);
2089 parse_warn (cfile, "more than one secondary.");
2090 skip_to_semi (cfile);
2097 token = next_token (&val, (unsigned *)0, cfile);
2100 if (!parse_ip_addr_or_hostname (&expr, cfile, 0)) {
2101 parse_warn (cfile,
2103 skip_to_semi (cfile);
2124 token = next_token (&val, (unsigned *)0, cfile);
2127 parse_warn (cfile, "expecting semicolon.");
2128 skip_to_semi (cfile);
2135 token = next_token (&val, (unsigned *)0, cfile);
2136 token = peek_token (&val, (unsigned *)0, cfile);
2138 token = next_token (&val, (unsigned *)0, cfile);
2141 key_name = parse_host_name (cfile);
2143 parse_warn (cfile, "expecting key name.");
2144 skip_to_semi (cfile);
2151 parse_warn (cfile, "unknown key %s", val);
2154 if (!parse_semi (cfile))
2165 token = next_token (&val, (unsigned *)0, cfile);
2167 parse_warn (cfile, "expecting right brace.");
2182 int parse_key (struct parse *cfile)
2196 token = peek_token (&val, (unsigned *)0, cfile);
2198 token = next_token (&val, (unsigned *)0, cfile);
2205 key -> name = parse_host_name (cfile);
2207 parse_warn (cfile, "expecting key name.");
2208 skip_to_semi (cfile);
2213 token = next_token (&val, (unsigned *)0, cfile);
2215 parse_warn (cfile, "expecting left brace");
2220 token = next_token (&val, (unsigned *)0, cfile);
2224 parse_warn (cfile,
2229 key -> algorithm = parse_host_name (cfile);
2231 parse_warn (cfile,
2235 if (!parse_semi (cfile))
2270 parse_warn (cfile, "key %s: too many secrets",
2276 if (!parse_base64 (&ds, cfile))
2286 if (!parse_semi (cfile))
2296 parse_warn (cfile, "expecting right brace.");
2301 token = peek_token (&val, (unsigned *)0, cfile);
2303 token = next_token (&val, (unsigned *)0, cfile);
2308 parse_warn (cfile, "tsig key %s: %s",
2316 skip_to_rbrace (cfile, 1);
2330 int parse_on_statement (result, cfile, lose)
2332 struct parse *cfile;
2343 token = next_token (&val, (unsigned *)0, cfile);
2362 parse_warn (cfile, "expecting a lease event type");
2363 skip_to_semi (cfile);
2368 token = next_token (&val, (unsigned *)0, cfile);
2376 parse_warn (cfile, "left brace expected.");
2377 skip_to_semi (cfile);
2383 cfile, lose, context_any)) {
2388 (unsigned *)0, cfile);
2394 token = next_token (&val, (unsigned *)0, cfile);
2396 parse_warn (cfile, "right brace expected.");
2397 skip_to_semi (cfile);
2410 int parse_switch_statement (result, cfile, lose)
2412 struct parse *cfile;
2422 token = next_token (&val, (unsigned *)0, cfile);
2424 parse_warn (cfile, "expecting left brace.");
2427 skip_to_semi (cfile);
2434 cfile, lose, context_data_or_numeric,
2437 parse_warn (cfile,
2444 token = next_token (&val, (unsigned *)0, cfile);
2446 parse_warn (cfile, "right paren expected.");
2450 token = next_token (&val, (unsigned *)0, cfile);
2452 parse_warn (cfile, "left brace expected.");
2456 (&(*result) -> data.s_switch.statements, cfile, lose,
2460 skip_to_rbrace (cfile, 1);
2465 token = next_token (&val, (unsigned *)0, cfile);
2467 parse_warn (cfile, "right brace expected.");
2478 int parse_case_statement (result, cfile, lose, case_context)
2480 struct parse *cfile;
2492 cfile, lose, case_context,
2496 parse_warn (cfile, "expecting %s expression.",
2502 skip_to_semi (cfile);
2507 token = next_token (&val, (unsigned *)0, cfile);
2509 parse_warn (cfile, "colon expected.");
2525 int parse_if_statement (result, cfile, lose)
2527 struct parse *cfile;
2539 token = peek_token (&val, (unsigned *)0, cfile);
2542 next_token (&val, (unsigned *)0, cfile);
2548 cfile, lose)) {
2550 parse_warn (cfile, "boolean expression expected.");
2559 token = next_token (&val, (unsigned *)0, cfile);
2561 parse_warn (cfile, "expecting right paren.");
2567 token = next_token (&val, (unsigned *)0, cfile);
2569 parse_warn (cfile, "left brace expected.");
2570 skip_to_semi (cfile);
2576 cfile, lose, context_any)) {
2581 (unsigned *)0, cfile);
2587 token = next_token (&val, (unsigned *)0, cfile);
2589 parse_warn (cfile, "right brace expected.");
2590 skip_to_semi (cfile);
2595 token = peek_token (&val, (unsigned *)0, cfile);
2597 token = next_token (&val, (unsigned *)0, cfile);
2598 token = peek_token (&val, (unsigned *)0, cfile);
2600 token = next_token (&val, (unsigned *)0, cfile);
2602 cfile, lose)) {
2604 parse_warn (cfile,
2611 parse_warn (cfile, "left brace or if expected.");
2612 skip_to_semi (cfile);
2617 token = next_token (&val, (unsigned *)0, cfile);
2620 cfile, lose, context_any))) {
2624 token = next_token (&val, (unsigned *)0, cfile);
2626 parse_warn (cfile, "right brace expected.");
2627 skip_to_semi (cfile);
2634 token = next_token (&val, (unsigned *)0, cfile);
2636 cfile, lose)) {
2638 parse_warn (cfile,
2660 int parse_boolean_expression (expr, cfile, lose)
2662 struct parse *cfile;
2666 if (!parse_expression (expr, cfile, lose, context_boolean,
2673 parse_warn (cfile, "Expecting a boolean expression.");
2697 int parse_data_expression (expr, cfile, lose)
2699 struct parse *cfile;
2703 if (!parse_expression (expr, cfile, lose, context_data,
2711 parse_warn (cfile, "Expecting a data expression.");
2724 int parse_numeric_expression (expr, cfile, lose)
2726 struct parse *cfile;
2730 if (!parse_expression (expr, cfile, lose, context_numeric,
2738 parse_warn (cfile, "Expecting a numeric expression.");
2759 int parse_dns_expression (expr, cfile, lose)
2761 struct parse *cfile;
2765 if (!parse_expression (expr, cfile, lose, context_dns,
2773 parse_warn (cfile, "Expecting a dns update subexpression.");
2782 int parse_non_binary (expr, cfile, lose, context)
2784 struct parse *cfile;
2799 token = peek_token (&val, (unsigned *)0, cfile);
2804 token = next_token (&val, (unsigned *)0, cfile);
2805 token = next_token (&val, (unsigned *)0, cfile);
2807 parse_warn (cfile, "string expected.");
2808 skip_to_semi (cfile);
2816 parse_warn (cfile, "unknown collection.");
2827 token = next_token (&val, (unsigned *)0, cfile);
2829 token = peek_token (&val, (unsigned *)0, cfile);
2836 cfile, lose, context_boolean)) {
2838 parse_warn (cfile, "expression expected");
2839 skip_to_semi (cfile);
2847 parse_warn (cfile, "boolean expression expected");
2848 skip_to_semi (cfile);
2855 token = next_token (&val, (unsigned *)0, cfile);
2856 if (!parse_expression (expr, cfile, lose, context,
2859 parse_warn (cfile, "expression expected");
2860 skip_to_semi (cfile);
2865 token = next_token (&val, (unsigned *)0, cfile);
2868 parse_warn (cfile, "right paren expected");
2869 skip_to_semi (cfile);
2877 token = next_token (&val, (unsigned *)0, cfile);
2882 (*expr) -> data.option = parse_option_name (cfile, 0, &known);
2891 token = next_token (&val, (unsigned *)0, cfile);
2898 token = next_token (&val, (unsigned *)0, cfile);
2905 token = next_token (&val, (unsigned *)0, cfile);
2910 token = next_token (&val, (unsigned *)0, cfile);
2914 parse_warn (cfile, "left parenthesis expected.");
2920 cfile, lose)) {
2924 parse_warn (cfile,
2926 skip_to_semi (cfile);
2932 token = next_token (&val, (unsigned *)0, cfile);
2936 parse_warn (cfile, "comma expected.");
2943 (&(*expr) -> data.substring.offset,cfile, lose)) {
2946 parse_warn (cfile,
2948 skip_to_semi (cfile);
2955 token = next_token (&val, (unsigned *)0, cfile);
2960 (&(*expr) -> data.substring.len, cfile, lose))
2963 token = next_token (&val, (unsigned *)0, cfile);
2966 parse_warn (cfile, "right parenthesis expected.");
2974 token = next_token (&val, (unsigned *)0, cfile);
2979 token = next_token (&val, (unsigned *)0, cfile);
2984 cfile, lose))
2987 token = next_token (&val, (unsigned *)0, cfile);
2992 cfile, lose))
2995 token = next_token (&val, (unsigned *)0, cfile);
3001 token = next_token (&val, (unsigned *)0, cfile);
3006 token = next_token (&val, (unsigned *)0, cfile);
3011 cfile, lose))
3014 token = next_token (&val, (unsigned *)0, cfile);
3020 cfile, lose))
3023 token = next_token (&val, (unsigned *)0, cfile);
3043 token = next_token (&val, (unsigned *)0, cfile);
3048 token = next_token (&val, (unsigned *)0, cfile);
3053 cfile, lose))
3056 token = next_token (&val, (unsigned *)0, cfile);
3061 cfile, lose))
3064 token = next_token (&val, (unsigned *)0, cfile);
3069 cfile, lose))
3072 token = next_token (&val, (unsigned *)0, cfile);
3077 cfile, lose))
3080 token = next_token (&val, (unsigned *)0, cfile);
3086 token = next_token (&val, (unsigned *)0, cfile);
3091 token = next_token (&val, (unsigned *)0, cfile);
3096 (&(*expr) -> data.reverse.width, cfile, lose)))
3099 token = next_token (&val, (unsigned *)0, cfile);
3104 (&(*expr) -> data.reverse.buffer, cfile, lose)))
3107 token = next_token (&val, (unsigned *)0, cfile);
3115 token = next_token (&val, (unsigned *)0, cfile);
3119 token = next_token (&val, (unsigned *)0, cfile);
3129 cfile, lose)))
3132 token = next_token (&val, (unsigned *)0, cfile);
3157 parse_warn (cfile,
3160 token = next_token (&val, (unsigned *)0, cfile);
3166 token = next_token (&val, (unsigned *)0, cfile);
3170 token = next_token (&val, (unsigned *)0, cfile);
3172 parse_warn (cfile,
3175 skip_to_semi (cfile);
3191 parse_warn (cfile, "unexpected rrtype: %s", val);
3215 token = next_token (&val, (unsigned *)0, cfile);
3223 cfile, lose)))
3226 token = next_token (&val, (unsigned *)0, cfile);
3235 cfile, lose)))
3239 token = next_token (&val, (unsigned *)0, cfile);
3248 cfile, lose))) {
3249 parse_warn (cfile,
3255 token = next_token (&val, (unsigned *)0, cfile);
3262 parse_warn (cfile,
3265 token = next_token (&val, (unsigned *)0, cfile);
3269 token = next_token (&val, (unsigned *)0, cfile);
3278 cfile, lose)))
3282 (cfile,
3289 token = next_token (&val, (unsigned *)0, cfile);
3307 token = peek_token (&val, (unsigned *)0, cfile);
3309 parse_warn (cfile, "expecting DNS prerequisite.");
3324 token = next_token (&val, (unsigned *)0, cfile);
3327 parse_warn (cfile,
3334 token = next_token (&val, (unsigned *)0, cfile);
3338 token = next_token (&val, (unsigned *)0, cfile);
3340 parse_warn (cfile, "expecting identifier or number.");
3343 skip_to_semi (cfile);
3357 parse_warn (cfile, "unexpected rrclass: %s", val);
3361 token = next_token (&val, (unsigned *)0, cfile);
3365 token = next_token (&val, (unsigned *)0, cfile);
3367 parse_warn (cfile, "expecting identifier or number.");
3384 parse_warn (cfile, "unexpected rrtype: %s", val);
3388 token = next_token (&val, (unsigned *)0, cfile);
3393 (&(*expr) -> data.ns_add.rrname, cfile, lose)))
3396 token = next_token (&val, (unsigned *)0, cfile);
3401 (&(*expr) -> data.ns_add.rrdata, cfile, lose)))
3405 token = next_token (&val, (unsigned *)0, cfile);
3410 (&(*expr) -> data.ns_add.ttl, cfile,
3413 parse_warn (cfile,
3419 token = next_token (&val, (unsigned *)0, cfile);
3431 token = next_token (&val, (unsigned *)0, cfile);
3433 (*expr) -> data.option = parse_option_name (cfile, 0, &known);
3442 token = next_token (&val, (unsigned *)0, cfile);
3449 token = next_token (&val, (unsigned *)0, cfile);
3456 token = next_token (&val, (unsigned *)0, cfile);
3463 token = next_token (&val, (unsigned *)0, cfile);
3470 token = next_token (&val, (unsigned *)0, cfile);
3477 token = next_token (&val, (unsigned *)0, cfile);
3484 token = next_token (&val, (unsigned *)0, cfile);
3491 token = next_token (&val, (unsigned *)0, cfile);
3498 token = next_token (&val, (unsigned *)0, cfile);
3500 token = next_token (&val, (unsigned *)0, cfile);
3504 token = next_token (&val, (unsigned *)0, cfile);
3506 parse_warn (cfile, "expecting string.");
3516 parse_warn (cfile, "invalid DNS rrtype: %s", val);
3520 token = next_token (&val, (unsigned *)0, cfile);
3535 token = next_token (&val, (unsigned *)0, cfile);
3540 token = next_token (&val, (unsigned *)0, cfile);
3545 cfile, lose))
3548 token = next_token (&val, (unsigned *)0, cfile);
3553 cfile, lose))
3556 token = next_token (&val, (unsigned *)0, cfile);
3562 token = next_token (&val, &len, cfile);
3569 token = next_token (&val, (unsigned *)0, cfile);
3570 token = next_token (&val, (unsigned *)0, cfile);
3572 parse_warn (cfile, "left parenthesis expected.");
3581 cfile, lose)) {
3583 parse_warn (cfile,
3585 skip_to_semi (cfile);
3592 token = next_token (&val, (unsigned *)0, cfile);
3594 parse_warn (cfile, "comma expected.");
3600 token = next_token (&val, (unsigned *)0, cfile);
3602 parse_warn (cfile, "number expected.");
3621 parse_warn (cfile,
3624 skip_to_semi (cfile);
3629 token = next_token (&val, (unsigned *)0, cfile);
3631 parse_warn (cfile, "right parenthesis expected.");
3639 token = next_token (&val, (unsigned *)0, cfile);
3640 token = next_token (&val, (unsigned *)0, cfile);
3642 parse_warn (cfile, "left parenthesis expected.");
3651 cfile, lose)) {
3652 parse_warn (cfile, "expecting numeric expression.");
3653 skip_to_semi (cfile);
3659 token = next_token (&val, (unsigned *)0, cfile);
3661 parse_warn (cfile, "comma expected.");
3667 token = next_token (&val, (unsigned *)0, cfile);
3669 parse_warn (cfile, "number expected.");
3688 parse_warn (cfile,
3691 skip_to_semi (cfile);
3696 token = next_token (&val, (unsigned *)0, cfile);
3698 parse_warn (cfile, "right parenthesis expected.");
3710 next_token (&val, (unsigned *)0, cfile);
3723 if (!parse_cshl (&(*expr) -> data.const_data, cfile)) {
3733 token = next_token (&val, (unsigned *)0, cfile);
3809 token = next_token (&val, (unsigned *)0, cfile);
3810 token = next_token (&val, (unsigned *)0, cfile);
3814 token = next_token (&val, (unsigned *)0, cfile);
3816 parse_warn (cfile, "%s can't be a variable name", val);
3817 skip_to_semi (cfile);
3829 token = next_token (&val, (unsigned *)0, cfile);
3839 token = next_token (&val, (unsigned *)0, cfile);
3848 token = peek_token (&val, (unsigned *)0, cfile);
3857 token = next_token (&val, (unsigned *)0, cfile);
3870 cfile, lose, context_any,
3874 parse_warn (cfile,
3878 skip_to_semi (cfile);
3883 token = next_token (&val, (unsigned *)0, cfile);
3886 parse_warn (cfile, "Right parenthesis expected.");
3887 skip_to_semi (cfile);
3899 int parse_expression (expr, cfile, lose, context, plhs, binop)
3901 struct parse *cfile;
3923 if (!parse_non_binary (&rhs, cfile, lose, context)) {
3929 parse_warn (cfile,
3932 skip_to_semi (cfile);
3943 token = peek_token (&val, (unsigned *)0, cfile);
3946 token = next_token (&val, (unsigned *)0, cfile);
3947 token = peek_token (&val, (unsigned *)0, cfile);
3949 parse_warn (cfile, "! in boolean context without =");
3951 skip_to_semi (cfile);
4030 next_token (&val, (unsigned *)0, cfile);
4045 token = next_token (&val, (unsigned *)0, cfile);
4050 if (!parse_expression (&rhs, cfile, lose, op_context (next_op),
4053 parse_warn (cfile,
4068 parse_warn (cfile, "illegal expression relating different types");
4069 skip_to_semi (cfile);
4083 parse_warn (cfile, "expecting data/numeric expression");
4084 skip_to_semi (cfile);
4095 parse_warn (cfile, "expecting boolean expressions");
4096 skip_to_semi (cfile);
4113 parse_warn (cfile, "expecting numeric expressions");
4114 skip_to_semi (cfile);
4143 token = next_token (&val, (unsigned *)0, cfile);
4178 int parse_option_statement (result, cfile, lookups, option, op)
4180 struct parse *cfile;
4192 token = peek_token (&val, (unsigned *)0, cfile);
4195 token = next_token (&val, (unsigned *)0, cfile);
4201 token = next_token (&val, (unsigned *)0, cfile);
4204 if (!parse_data_expression (&expr, cfile, &lose)) {
4209 parse_warn (cfile,
4211 skip_to_semi (cfile);
4247 if (!parse_option_token (&expr, cfile, &fmt,
4262 token = peek_token (&val, (unsigned *)0, cfile);
4266 (unsigned *)0, cfile);
4282 if (!parse_semi (cfile))
4295 int parse_option_token (rv, cfile, fmt, expr, uniform, lookups)
4297 struct parse *cfile;
4314 token = next_token (&val, &len, cfile);
4317 parse_warn (cfile, "expecting identifier.");
4319 skip_to_semi (cfile);
4331 parse_warn (cfile,
4333 skip_to_semi (cfile);
4338 token = peek_token (&val, (unsigned *)0, cfile);
4342 if (!parse_cshl (&t -> data.const_data, cfile)) {
4348 token = next_token (&val, &len, cfile);
4356 parse_warn (cfile, "expecting string %s.",
4358 skip_to_semi (cfile);
4366 val = parse_host_name (cfile);
4368 parse_warn (cfile, "not a valid domain name.");
4369 skip_to_semi (cfile);
4376 token = next_token (&val, &len, cfile);
4379 parse_warn (cfile, "expecting string.");
4381 skip_to_semi (cfile);
4395 parse_warn (cfile, "malformed %s (bug!)",
4398 skip_to_semi (cfile);
4402 token = next_token (&val, (unsigned *)0, cfile);
4404 parse_warn (cfile,
4410 parse_warn (cfile, "unknown value");
4419 if (!parse_ip_addr_or_hostname (&t, cfile, uniform))
4422 if (!parse_ip_addr (cfile, &addr))
4431 token = next_token (&val, (unsigned *)0, cfile);
4441 token = next_token (&val, (unsigned *)0, cfile);
4446 parse_warn (cfile, "expecting number.");
4448 skip_to_semi (cfile);
4452 convert_num (cfile, buf, val, 0, 32);
4459 token = next_token (&val, (unsigned *)0, cfile);
4462 convert_num (cfile, buf, val, 0, 16);
4469 token = next_token (&val, (unsigned *)0, cfile);
4472 convert_num (cfile, buf, val, 0, 8);
4478 token = next_token (&val, (unsigned *)0, cfile);
4481 parse_warn (cfile, "expecting identifier.");
4485 skip_to_semi (cfile);
4499 parse_warn (cfile, "expecting boolean.");
4507 parse_warn (cfile, "Bad format %c in parse_option_token.",
4509 skip_to_semi (cfile);
4521 int parse_option_decl (oc, cfile)
4523 struct parse *cfile;
4540 option = parse_option_name (cfile, 0, &known);
4557 parse_warn (cfile,
4560 skip_to_semi (cfile);
4564 len = parse_X (cfile, &hunkbuf [hunkix],
4571 &len, cfile);
4573 parse_warn (cfile,
4575 skip_to_semi (cfile);
4579 parse_warn (cfile,
4582 skip_to_semi (cfile);
4594 parse_warn (cfile,
4598 skip_to_semi (cfile);
4602 (unsigned *)0, cfile);
4604 parse_warn (cfile,
4610 parse_warn (cfile,
4619 if (!parse_ip_addr (cfile, &ip_addr))
4626 parse_warn (cfile,
4629 skip_to_semi (cfile);
4639 (unsigned *)0, cfile);
4643 parse_warn (cfile,
4646 skip_to_semi (cfile);
4649 convert_num (cfile, buf, val, 0, 32);
4657 (unsigned *)0, cfile);
4661 convert_num (cfile, buf, val, 0, 16);
4669 (unsigned *)0, cfile);
4673 convert_num (cfile, buf, val, 0, 8);
4680 (unsigned *)0, cfile);
4682 parse_warn (cfile,
4686 skip_to_semi (cfile);
4696 parse_warn (cfile,
4707 skip_to_semi (cfile);
4711 token = next_token (&val, (unsigned *)0, cfile);
4715 parse_warn (cfile, "semicolon expected.");
4716 skip_to_semi (cfile);
4740 int parse_X (cfile, buf, max)
4741 struct parse *cfile;
4749 token = peek_token (&val, (unsigned *)0, cfile);
4753 token = next_token (&val, (unsigned *)0, cfile);
4755 parse_warn (cfile,
4757 skip_to_semi (cfile);
4760 convert_num (cfile, &buf [len], val, 16, 8);
4762 parse_warn (cfile,
4764 skip_to_semi (cfile);
4767 token = peek_token (&val, (unsigned *)0, cfile);
4770 (unsigned *)0, cfile);
4774 token = next_token (&val, &len, cfile);
4776 parse_warn (cfile, "string constant too long.");
4777 skip_to_semi (cfile);
4782 parse_warn (cfile, "expecting string or hexadecimal data");
4783 skip_to_semi (cfile);
4789 int parse_warn (struct parse *cfile, const char *fmt, ...)
4802 cfile -> tlname, cfile -> lexline, mbuf);
4813 cfile -> token_line [i] && i < (cfile -> lexchar - 1); i++) {
4816 if (cfile -> token_line [i] == '\t') {
4826 syslog (log_priority | LOG_ERR, "%s", cfile -> token_line);
4827 if (cfile -> lexchar < 81)
4834 write (STDERR_FILENO, cfile -> token_line,
4835 strlen (cfile -> token_line));
4837 if (cfile -> lexchar < 81)
4842 cfile -> warnings_occurred = 1;