[buffer] Better parse glyph names

pull/2/head
Behdad Esfahbod 12 years ago
parent 20b817ac21
commit 778d7f844c
  1. 9
      src/hb-buffer-deserialize-json.rl
  2. 5
      src/hb-buffer-deserialize-text.rl

@ -72,10 +72,13 @@ num = '-'? unum;
comma = space* ',' space*;
colon = space* ':' space*;
glyph_name = '"' (alnum+ >tok %parse_glyph) '"';
glyph_number = (unum >tok %parse_gid);
glyph_id = unum;
glyph_name = alpha (alnum|'_'|'.'|'-')*;
glyph = "\"g\"" colon (glyph_name | glyph_number);
glyph_string = '"' (glyph_name >tok %parse_glyph) '"';
glyph_number = (glyph_id >tok %parse_gid);
glyph = "\"g\"" colon (glyph_string | glyph_number);
cluster = "\"cl\"" colon (unum >tok %parse_cluster);
xoffset = "\"dx\"" colon (num >tok %parse_x_offset);
yoffset = "\"dy\"" colon (num >tok %parse_y_offset);

@ -68,7 +68,10 @@ action parse_y_advance { if (!parse_int (tok, p, &pos.y_advance)) return false;
unum = '0' | [1-9] digit*;
num = '-'? unum;
glyph = alnum+ >tok %parse_glyph;
glyph_id = unum;
glyph_name = alpha (alnum|'_'|'.'|'-')*;
glyph = (glyph_id | glyph_name) >tok %parse_glyph;
cluster = '=' (unum >tok %parse_cluster);
offsets = '@' (num >tok %parse_x_offset) ',' (num >tok %parse_y_offset );
advances= '+' (num >tok %parse_x_advance) (',' (num >tok %parse_y_advance))?;

Loading…
Cancel
Save