case T_RBRACK:
return "]";
+ case T_LCURLY:
+ return "{";
+
+ case T_RCURLY:
+ return "}";
+
case T_COMMA:
return ",";
+ case T_SEMICOLON:
+ return ";";
+
+ case T_COLON:
+ return ":";
+
case T_AND:
return "AND";
TOKEN_TYPE(RPAREN) /* ) */ \
TOKEN_TYPE(LBRACK) /* [ */ \
TOKEN_TYPE(RBRACK) /* ] */ \
+ TOKEN_TYPE(LCURLY) /* { */ \
+ TOKEN_TYPE(RCURLY) /* } */ \
TOKEN_TYPE(COMMA) /* , */ \
+ TOKEN_TYPE(SEMICOLON) /* ; */ \
+ TOKEN_TYPE(COLON) /* : */ \
\
TOKEN_TYPE(AND) /* AND */ \
TOKEN_TYPE(OR) /* OR */ \
case T_RPAREN:
case T_LBRACK:
case T_RBRACK:
+ case T_LCURLY:
+ case T_RCURLY:
return TC_PUNCT;
case T_PLUS:
case T_ASTERISK:
case T_SLASH:
case T_EQUALS:
+ case T_COLON:
case T_AND:
case T_OR:
case T_NOT:
return TC_BINOP;
case T_COMMA:
+ case T_SEMICOLON:
return TC_COMMA;
}
case '-': return T_DASH;
case '[': return T_LBRACK;
case ']': return T_RBRACK;
+ case '{': return T_LCURLY;
+ case '}': return T_RCURLY;
case '&': return T_AND;
case '|': return T_OR;
case '+': return T_PLUS;
case '<': return T_LT;
case '>': return T_GT;
case '~': return T_NOT;
+ case ';': return T_SEMICOLON;
+ case ':': return T_COLON;
default: return T_MACRO_PUNCT;
}
return segmenter_parse_number__ (s, input, n, eof, type, ofs);
}
/* Fall through. */
- case '(': case ')': case ',': case '=':
- case '[': case ']': case '&': case '|': case '+':
+ case '(': case ')': case '{': case ',': case '=': case ';': case ':':
+ case '[': case ']': case '}': case '&': case '|': case '+':
*type = SEG_PUNCT;
s->substate = 0;
return 1;
RBRACK
EXP
MACRO_PUNCT "%"
-MACRO_PUNCT ":"
-MACRO_PUNCT ";"
+COLON
+SEMICOLON
MACRO_PUNCT "?"
MACRO_PUNCT "_"
MACRO_PUNCT "`"
-MACRO_PUNCT "{"
-MACRO_PUNCT "}"
+LCURLY
+RCURLY
NOT
STOP
])