70 Commits

Author SHA1 Message Date
Khaled Hosny
b6ec12bad0 [voltLib] Distinguish different PROCESS_MARKS
PROCESS_MARKS followed by a group name is used for markAttachmentType
lookup flag, while followed by MARK_GLYPH_SET is used for
useMarkFilteringSet. The code parsed both correctly but did not
distinguish between the two in the generated AST as it should since they
compile to different lookup flags.
2019-01-23 10:18:44 +02:00
Khaled Hosny
4236772ec1 [voltLib] glyphSet() should return tuple
We need to maintain the glyph order and keep any duplicates.
2019-01-22 09:42:22 +02:00
Khaled Hosny
94633e9f46 [voltLib] Fix parsing glyph groups
* Fix ast.GroupDefinition.glyphSet() by using ast.GlyphName,
  ast.GroupName and ast.Range in Parser.parse_coverage_(), and making it return
  ast.Enum.

* Add ast.Enum.__len_() to fix the calculation of max_src and max_dest
  in Parser.parse_substitution_(). I’m not sure I understand the logic
  of this many to many check, will double check later.

* Update the test suite to reflect this. Had to add ast.Enum.__eq__() to
  make it less painful, and __hash__() as otherwise ast.Enum wouldn’t be
  used as a key in dicts (not sure this is a goo idea either, will
  double check later).
2019-01-22 09:42:22 +02:00
Khaled Hosny
e529832362 [voltLib] Don’t try to read past END
The parser was still trying to read the next token even when the current
token was END, but I think it should just stop reading here. When
reading from TSIV table there can be null bytes at the end when would
cause an exception in the lexer.
2019-01-16 23:04:14 +02:00
Khaled Hosny
ca716e0925 [voltLib] Fix check for duplicate anchors
When checking for duplicate anchors, the component number should be
taken into account since the same anchors can be used for different
components i.e. over ligatures.
2019-01-16 15:31:05 +02:00
Cosimo Lupo
1fb1529a18
[voltLib.ast] same as feaLib, location=None by default 2018-02-27 19:00:08 +00:00
moyogo
b97476885b [voltLib] parser: glyphs OrderedSymbolTable is case sensitive 2016-09-15 09:17:11 +01:00
moyogo
fbd90ec94b [voltLib] parser: don’t use feaLib.parse 2016-09-15 07:09:01 +01:00
moyogo
76d8084d77 [voltLib] use OrderedDict for mapping 2016-09-14 17:25:26 +01:00
moyogo
31a1aa8c7a [voltLib] use tuple for coverage and in mapping 2016-09-14 17:25:26 +01:00
moyogo
2f71f7c9ad [voltLib] remove unsused SymbolTable.expand() and remove commented calls 2016-09-14 17:25:26 +01:00
moyogo
bc63725beb [voltLib] Add GlyphName, Enum, GroupName, Range to ast. Add resolve_group and glyph_range to Parser 2016-09-14 17:25:25 +01:00
moyogo
f91020c2f4 [voltLib] add OrderedSymbolTable, needed for Parser.glyphs_ and ranges 2016-09-14 17:25:25 +01:00
moyogo
e729fd9b54 [voltLib] parse ReverseChainingSingle substitution 2016-09-14 17:25:25 +01:00
moyogo
e93f7384a5 [voltLib] parse substitution as single, multiple or ligature sub 2016-09-14 17:25:25 +01:00
moyogo
c564b31f47 [voltLib] test for duplicate lang tag 2016-09-14 17:25:25 +01:00
moyogo
da80ce9cd1 [voltLib] test for duplicate script tag 2016-09-14 17:25:25 +01:00
moyogo
23106f71ec [voltLib] lookup name must start with letter 2016-09-14 17:25:25 +01:00
moyogo
1dbb08a296 [voltLib] parse substitution single to multiple and multiple to single, change single to single. 2016-09-14 17:25:24 +01:00
moyogo
1b1b52500c [voltLib] handle duplicate or case insensitive duplicate names 2016-09-14 17:25:24 +01:00
moyogo
80a4cc6d72 [voltLib] change how adjust_single is parsed 2016-09-14 17:25:24 +01:00
moyogo
eb3a2cccd9 [voltLib] parse process_base and process_marks differently for LookupDefinition 2016-09-14 17:25:24 +01:00
moyogo
6caba42cc2 [voltLib] 'adjust_pair' instead of just 'adjust' 2016-09-14 17:25:24 +01:00
moyogo
a561fc797b [voltLib] handle empty sub or pos 2016-09-14 17:25:23 +01:00
moyogo
296de366d5 [voltLib] fix parsing device tables, add parse_adjust_by_ 2016-09-14 17:25:23 +01:00
moyogo
8d193ddc53 [voltLib] formatting 2016-09-14 17:25:23 +01:00
moyogo
b70ef7accd [voltLib] parse REVERSAL for reverse chaining context singl substitution 2016-09-14 17:25:23 +01:00
moyogo
319b4cc227 [voltLib] range definition uses TO 2016-09-14 17:25:23 +01:00
moyogo
bf167e6b3b [voltLib] adjust comment 2016-09-14 17:25:23 +01:00
moyogo
0c8afe0df6 [voltLib] Comment out code expanding resolved_group in expand() 2016-09-14 17:25:22 +01:00
moyogo
2cb543d89a [voltLib] Comment out group code from 91be69c 2016-09-14 17:25:22 +01:00
moyogo
33417d7e19 [voltLib] Move code from parse_position_() to parse_attach_(), parse_attach_cursive_(), parse_adjust_pair_(), parse_adjust_single_() 2016-09-14 17:25:22 +01:00
moyogo
b0069bbde5 [voltLib] some groups may not be defined yet; should check that group exists after all groups are defined 2016-09-14 17:25:21 +01:00
moyogo
fd8149c08d [voltLib] parser.py: comment out unused variables 2016-09-14 17:25:21 +01:00
moyogo
21fff17f8c [voltLib] unicode_values may be invalid 2016-09-14 17:25:21 +01:00
moyogo
021e377482 [voltLib] Add attach cursive and adjust single to parser 2016-09-14 17:25:21 +01:00
moyogo
d47b818774 [voltLib] COMPONENTS doesn't have to be preceded by LIGATURE 2016-09-14 17:25:21 +01:00
moyogo
19c55a2d05 [voltLib] Add expand() for groups 2016-09-14 17:25:21 +01:00
moyogo
e06cd2385e [voltLib] use dict PARSE_FUNCS and getattr instead of series of if/elif 2016-09-14 17:25:21 +01:00
moyogo
cdfd1a11c3 [voltLib] add Parser.anchors 2016-09-14 17:25:20 +01:00
moyogo
1f7bc1bea7 [voltLib] parser.py: just 'with open' instead of 'try' 2016-09-14 17:25:20 +01:00
moyogo
52c5c121e1 [voltLib] Handle process_marks in lookup 2016-09-14 17:21:41 +01:00
moyogo
70211f34a0 [voltLib] parser.py: formatting 2016-09-14 17:21:41 +01:00
moyogo
b49c6b917e [voltLib] name is optional for DEF_SCRIPT and DEF_LANGSYS 2016-09-14 17:21:41 +01:00
moyogo
81d8d847a9 [voltLib] parser.py: use io.open 2016-09-14 17:21:41 +01:00
moyogo
bb0ab10ad0 [voltLib] ast.py: unicode_literals 2016-09-14 17:21:41 +01:00
moyogo
fd3ffed261 [voltLib] Change how enum is parsed in coverage 2016-09-14 17:21:41 +01:00
moyogo
ed34ef3eca [voltLib] Add settings (ppem, compiler flags, cmap format) 2016-09-14 17:21:41 +01:00
moyogo
6fab2a4f7b [voltLib] Modify PositionAttachDefinition and parse_position to handle multiple TO coverages 2016-09-14 17:21:41 +01:00
moyogo
923fd2cb4d [voltLib] Add adjust pair positioning 2016-09-14 17:21:41 +01:00