OSDN Git Service

update on the implementation of SERIKO/2.0
authorShyouzou Sugitani <shy@users.sourceforge.jp>
Fri, 8 Feb 2013 16:41:58 +0000 (01:41 +0900)
committerShyouzou Sugitani <shy@users.sourceforge.jp>
Fri, 8 Feb 2013 16:41:58 +0000 (01:41 +0900)
ChangeLog
lib/ninix/seriko.py

index 892e8e6..bb81459 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri February 8 2013   Shyouzou Sugitani <shy@users.sourceforge.jp>
+       * SERIKO/2.0のalternativestartのID区切り文字として
+         ピリオドとカンマの両方を受け付けるようにした.
+       * SERIKO/2.0のパターン処理用の正規表現を修正した.
+
 Thu February 7 2013   Shyouzou Sugitani <shy@users.sourceforge.jp>
        * SERIKO/MAYUNA/elementのメソッド対応を拡張した.
          - interpolateとreplaceメソッドを実装した.
index ec0ead2..05741ed 100644 (file)
@@ -462,7 +462,7 @@ re_seriko_pattern = re.compile(r'^([0-9]+|-[12])\s*,\s*([+-]?[0-9]+)\s*,\s*(over
 
 re_seriko2_interval = re.compile('^animation([0-9]+)\.interval$')
 re_seriko2_interval_value = re.compile('^(sometimes|rarely|random,[0-9]+|periodic,[0-9]+|always|runonce|yesn-e|talk,[0-9]+|never)$')
-re_seriko2_pattern = re.compile(r'^(overlay|overlayfast|interpolate|reduce|replace|base|move|start|alternativestart|)\s*,\s*([0-9]+|-[12])\s*,\s*([+-]?[0-9]+)\s*,?\s*([+-]?[0-9]+)?\s*,?\s*([+-]?[0-9]+)?\s*,?\s*(\([0-9]+(\.[0-9]+)*\))?$')
+re_seriko2_pattern = re.compile(r'^(overlay|overlayfast|interpolate|reduce|replace|base|move|start|alternativestart)\s*,\s*([0-9]+|-[12])?\s*,?\s*([+-]?[0-9]+)?\s*,?\s*([+-]?[0-9]+)?\s*,?\s*([+-]?[0-9]+)?\s*,?\s*(\([0-9]+([\.\,][0-9]+)*\)?)$')
 
 def get_actors(config):
     version = None
@@ -555,7 +555,10 @@ def get_actors(config):
                     args = match.group(6)
                     if args is None:
                         raise ValueError('syntax error: {0}'.format(pattern))
-                    args = [int(s) for s in args[1:-1].split('.')]
+                    t = []
+                    for x in args[1:-1].split('.'):
+                        t.extend(x.split(','))
+                    args = [int(s) for s in t]
                 else:
                     if surface in ['-1', '-2']:
                         x = 0