void _rangeCharSeq(RegNode_Charset* node) { for (;;) { if (_specialCharset(node) || _char(node)) continue; if (cur() == '-') { char first = pre(); consume(); char last = cur(); ASSERT(_char(node)); while (++first < last) node->chars[first] = true; } else break; } }
RegNodePtr _term() { if (auto r = _capture()) return r; else if (auto r = _rangeCharset()) return r; else { auto p = new RegNode_Charset; RegNodePtr r2(p); if (_specialCharset(p) || _char(p)) { return r2; } else return RegNodePtr(); } }
static void _led_puts (int fd, char *s) { uint8_t buf[4]; char *p = s; int i = 0; memset (buf, 0, sizeof (buf)); for (i = 0, p = s; *p != '\0' && i < 4; p++) { if (*p == '.' && i == 0) buf[i++] = 0x80; else if (*p == '.' && i > 0) buf[i - 1] |= 0x80; else buf[i++] = _char(*p); } _led_display (fd, buf); }