Frama-C Bug Tracking System - Frama-C
View Issue Details
0002146Frama-CKernelpublic2015-07-16 17:402016-08-29 17:26 
Frama-C Sodium 
Frama-C Aluminium 
0002146: Frama-C does not support standard C digraphs
Frama-C does not parse a program like void func() <% return; %> Presumably other standard digraphs and trigraphs are not supported as well.
No tags attached.
patch clexer.mll.patch (906) 2015-07-28 17:46
Issue History
2015-07-16 17:40dcok@grammatech.comNew Issue
2015-07-16 17:40dcok@grammatech.comStatusnew => assigned
2015-07-16 17:40dcok@grammatech.comAssigned To => virgile
2015-07-28 17:26maronezeNote Added: 0005988
2015-07-28 17:46maronezeFile Added: clexer.mll.patch
2015-07-28 17:48maronezeNote Added: 0005989
2015-07-28 17:53maronezeAssigned Tovirgile => maroneze
2015-07-28 17:53maronezeStatusassigned => confirmed
2015-07-28 18:40maronezeCategoryKernel > ACSL implementation => Kernel
2016-08-25 13:42maronezeNote Added: 0006257
2016-08-25 13:42maronezeStatusconfirmed => resolved
2016-08-25 13:42maronezeFixed in Version => Frama-C Aluminium
2016-08-25 13:42maronezeResolutionopen => fixed
2016-08-29 17:26maronezeStatusresolved => closed

2015-07-28 17:26   
Just a clarification: trigraphs are supported, since they are processed by the C preprocessor (e.g. with -cpp-extra-args="-trigraphs" if using GCC), but the digraphs defined in the C99 standard are not currently supported.
2015-07-28 17:48   
After a quick glance, it seems that patching src/cil/frontc/lexer.mll could work, at least for a few toy examples I tried it on (such as your example code). The attached patch (for Frama-C Sodium) should allow you to perform some tests. More robust testing would be required before merging this intro trunk, however.
2016-08-25 13:42   
C99 digraphs are now supported in Frama-C.