public void parser_prepare() { int c = nextc(); switch(c) { case '#': if (peek('!')) has_shebang = true; break; case 0xef: if (lex_pend - lex_p >= 2 && p(lex_p) == 0xbb && p(lex_p + 1) == 0xbf) { setEncoding(UTF8_ENCODING); lex_p += 2; lex_pbeg = lex_p; return; } break; case EOF: return; } pushback(c); current_enc = lex_lastline.getEncoding(); }
public void parser_prepare() { int c = nextc(); switch(c) { case '#': if (peek('!')) has_shebang = true; break; case 0xef: if (lex_pend - lex_p >= 2 && p(lex_p) == 0xbb && p(lex_p + 1) == 0xbf) { setEncoding(UTF8_ENCODING); lex_p += 2; lex_pbeg = lex_p; return; } break; case EOF: return; } pushback(c); current_enc = lex_lastline.getEncoding(); }
protected boolean peek(int c, int n) { return lex_p+n < lex_pend && p(lex_p+n) == c; }
protected boolean peek(int c, int n) { return lex_p+n < lex_pend && p(lex_p+n) == c; }
protected boolean comment_at_top() { int p = lex_pbeg; int pend = lex_p - 1; if (line_count != (has_shebang ? 2 : 1)) return false; while (p < pend) { if (!Character.isSpaceChar(p(p))) return false; p++; } return true; }
protected boolean comment_at_top() { int p = lex_pbeg; int pend = lex_p - 1; if (line_count != (has_shebang ? 2 : 1)) return false; while (p < pend) { if (!Character.isSpaceChar(p(p))) return false; p++; } return true; }
public boolean whole_match_p(ByteList eos, boolean indent) { int len = eos.length(); int p = lex_pbeg; if (indent) { for (int i = 0; i < lex_pend; i++) { if (!Character.isWhitespace(p(i+p))) { p += i; break; } } } int n = lex_pend - (p + len); if (n < 0) return false; if (n > 0 && p(p+len) != '\n') { if (p(p+len) != '\r') return false; if (n == 1 || p(p+len+1) != '\n') return false; } return strncmp(eos, lexb.makeShared(p, len), len); }
public boolean whole_match_p(ByteList eos, boolean indent) { int len = eos.length(); int p = lex_pbeg; if (indent) { for (int i = 0; i < lex_pend; i++) { if (!Character.isWhitespace(p(i+p))) { p += i; break; } } } int n = lex_pend - (p + len); if (n < 0) return false; if (n > 0 && p(p+len) != '\n') { if (p(p+len) != '\r') return false; if (n == 1 || p(p+len+1) != '\n') return false; } return strncmp(eos, lexb.makeShared(p, len), len); }
if (send - str <= 6) return; switch(p(str+6)) { case 'C': case 'c': str += 6; continue; case 'O': case 'o': str += 5; continue; default: str += 6; if (Character.isSpaceChar(p(str))) break; continue; str++; if (str >= send) return; } while(Character.isSpaceChar(p(str))); if (sep) break; if (p(str) != '=' && p(str) != ':') return; sep = true; str++; while ((p(str) == '-' || p(str) == '_' || Character.isLetterOrDigit(p(str))) && ++str < send) {} setEncoding(lexb.makeShared(beg, str - beg));
if (send - str <= 6) return; switch(p(str+6)) { case 'C': case 'c': str += 6; continue; case 'O': case 'o': str += 5; continue; default: str += 6; if (Character.isSpaceChar(p(str))) break; continue; str++; if (str >= send) return; } while(Character.isSpaceChar(p(str))); if (sep) break; if (p(str) != '=' && p(str) != ':') return; sep = true; str++; while ((p(str) == '-' || p(str) == '_' || Character.isLetterOrDigit(p(str))) && ++str < send) {} setEncoding(lexb.makeShared(beg, str - beg));