commit ab8f7866b04d9237800377f181d3f4593c53828a
Author: Marcin Krol <h...@tld-linux.org>
Date:   Mon Jan 22 12:31:39 2018 +0000

    - fix for GCC 7.x based on https://trac.osgeo.org/grass/ticket/3331

 gcc7-fix.patch | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
---
diff --git a/gcc7-fix.patch b/gcc7-fix.patch
new file mode 100644
index 0000000..00f4c05
--- /dev/null
+++ b/gcc7-fix.patch
@@ -0,0 +1,36 @@
+diff -ur ctypesgen.orig/ctypesgencore/parser/lextab.py 
ctypesgen/ctypesgencore/parser/lextab.py
+--- ctypesgen.orig/ctypesgencore/parser/lextab.py      2015-05-11 
16:17:08.000000000 +0000
++++ ctypesgen/ctypesgencore/parser/lextab.py   2018-01-22 10:30:56.565147882 
+0000
+@@ -3,6 +3,6 @@
+ _lexreflags   = 0
+ _lexliterals  = ''
+ _lexstateinfo = {'INITIAL': 'inclusive', 'DEFINE': 'exclusive'}
+-_lexstatere   = {'INITIAL': 
[('(?P<t_ANY_directive>\\#\\s+(\\d+)\\s+"([^"]+)"[ 
\\d]*\\n)|(?P<t_ANY_punctuator>(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))',
 [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 
'ANY_punctuator')]), ('(?P<t_INITIAL_identifier>[a-zA-Z_]([a-zA-Z_]|[0-9])*)', 
[None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), 
('(?P<t_ANY_float>(?P<p1>[0-9]+)?(?P<dp>[.]?)(?P<p2>(?(p1)[0-9]*|[0-9]+))(?P<exp>(?:[Ee][+-]?[0-9]+)?)(?P<suf>[FflL]?)(?!\\w))',
 [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), 
('(?P<t_ANY_int>(?P<p1>(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P<suf>[uUlL]*))', [None, 
('t_ANY_int', 'ANY_int'), None, None]), 
('(?P<t_ANY_character_constant>L?\'(\\\\.|[^\\\\\'])+\')|(?P<t_ANY_string_literal>L?"(\\\\.|[^\\\\"])*")|(?P<t_ANY_lparen>\\()|(?P<t_INITIAL_newline>\\n)|(?P<t_INITIAL_pp_define>\\#def
 ine)', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, 
('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 
'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), 
('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': 
[('(?P<t_ANY_directive>\\#\\s+(\\d+)\\s+"([^"]+)"[ 
\\d]*\\n)|(?P<t_ANY_punctuator>(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))',
 [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 
'ANY_punctuator')]), ('(?P<t_DEFINE_identifier>[a-zA-Z_]([a-zA-Z_]|[0-9])*)', 
[None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), 
('(?P<t_ANY_float>(?P<p1>[0-9]+)?(?P<dp>[.]?)(?P<p2>(?(p1)[0-9]*|[0-9]+))(?P<exp>(?:[Ee][+-]?[0-9]+)?)(?P<suf>[FflL]?)(?!\\w))',
 [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), 
('(?P<t_ANY_int>(?P<p1>(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P<suf>[uUlL]*))', 
 [None, ('t_ANY_int', 'ANY_int'), None, None]), 
('(?P<t_ANY_character_constant>L?\'(\\\\.|[^\\\\\'])+\')|(?P<t_ANY_string_literal>L?"(\\\\.|[^\\\\"])*")|(?P<t_ANY_lparen>\\()|(?P<t_DEFINE_newline>\\n)|(?P<t_DEFINE_pp_param_op>(\\#\\#)|(\\#))',
 [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, 
('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 
'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 
'DEFINE_pp_param_op')])]}
++_lexstatere   = {'INITIAL': 
[('(?P<t_ANY_directive>\\#\\s+(\\d+)\\s+"([^"]+)"[ 
\\d]*\\n)|(?P<t_ANY_punctuator>(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))',
 [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 
'ANY_punctuator')]), ('(?P<t_INITIAL_identifier>[a-zA-Z_]([a-zA-Z_]|[0-9])*)', 
[None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), 
('(?P<t_ANY_float>(?P<p1>[0-9]+)?(?P<dp>[.]?)(?P<p2>(?(p1)[0-9]*|[0-9]+))(?P<exp>(?:[Ee][+-]?[0-9]+)?)(?P<suf>([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))',
 [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), 
('(?P<t_ANY_int>(?P<p1>(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P<suf>[uUlL]*))', [None, 
('t_ANY_int', 'ANY_int'), None, None]), 
('(?P<t_ANY_character_constant>L?\'(\\\\.|[^\\\\\'])+\')|(?P<t_ANY_string_literal>L?"(\\\\.|[^\\\\"])*")|(?P<t_ANY_lparen>\\()|(?P<t_INITIAL_newline>\\n)
 |(?P<t_INITIAL_pp_define>\\#define)', [None, ('t_ANY_character_constant', 
'ANY_character_constant'), None, ('t_ANY_string_literal', 
'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), 
('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 
'INITIAL_pp_define')])], 'DEFINE': 
[('(?P<t_ANY_directive>\\#\\s+(\\d+)\\s+"([^"]+)"[ 
\\d]*\\n)|(?P<t_ANY_punctuator>(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))',
 [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 
'ANY_punctuator')]), ('(?P<t_DEFINE_identifier>[a-zA-Z_]([a-zA-Z_]|[0-9])*)', 
[None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), 
('(?P<t_ANY_float>(?P<p1>[0-9]+)?(?P<dp>[.]?)(?P<p2>(?(p1)[0-9]*|[0-9]+))(?P<exp>(?:[Ee][+-]?[0-9]+)?)(?P<suf>([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))',
 [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), 
('(?P<t_ANY
 _int>(?P<p1>(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P<suf>[uUlL]*))', [None, 
('t_ANY_int', 'ANY_int'), None, None]), 
('(?P<t_ANY_character_constant>L?\'(\\\\.|[^\\\\\'])+\')|(?P<t_ANY_string_literal>L?"(\\\\.|[^\\\\"])*")|(?P<t_ANY_lparen>\\()|(?P<t_DEFINE_newline>\\n)|(?P<t_DEFINE_pp_param_op>(\\#\\#)|(\\#))',
 [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, 
('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 
'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 
'DEFINE_pp_param_op')])]}
+ _lexstateignore = {'INITIAL': ' \t\x0b\x0c\r', 'DEFINE': ' \t\x0b\x0c\r'}
+ _lexstateerrorf = {'INITIAL': 't_INITIAL_error', 'DEFINE': 't_DEFINE_error'}
+diff -ur ctypesgen.orig/ctypesgencore/parser/pplexer.py 
ctypesgen/ctypesgencore/parser/pplexer.py
+--- ctypesgen.orig/ctypesgencore/parser/pplexer.py     2015-05-11 
16:17:08.000000000 +0000
++++ ctypesgen/ctypesgencore/parser/pplexer.py  2018-01-22 10:31:29.006145948 
+0000
+@@ -36,7 +36,7 @@
+     'L': '[a-zA-Z_]',
+     'H': '[a-fA-F0-9]',
+     'E': '[Ee][+-]?\s*{D}+',
+-    'FS': '[FflL]',
++    'FS': '([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)',
+     'IS': '[uUlL]*',
+ }
+ # Helper: substitute {foo} with subs[foo] in string (makes regexes more lexy)
+@@ -184,10 +184,10 @@
+     exp = m.group("exp")
+     suf = m.group("suf")
+ 
+-    if dp or exp or (suf and suf in ("Ff")):
++    if dp or exp or (suf and suf not in ("Ll")):
+         s = m.group(0)
+         if suf:
+-            s = s[:-1]
++            s = s[:-len(suf)]
+         # Attach a prefix so the parser can figure out if should become an
+         # integer, float, or long
+         t.value = "f" + s
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python-ctypesgen.git/commitdiff/87d76182569afb92af3921e32f5848d90d884c51

_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to