python.st - enscript - GNU Enscript
 (HTM) git clone git://thinkerwim.org/enscript.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       python.st (1690B)
       ---
            1 /**
            2  * Name: python
            3  * Description: Python programming language.
            4  * Author: Andy Eskilsson <Andy.Eskilsson@telelogic.se>
            5  */
            6 
            7 state python_string extends Highlight
            8 {
            9   /\\\\./ {
           10     language_print ($0);
           11   }
           12   python_string_end {
           13     language_print ($0);
           14     return;
           15   }
           16 }
           17 
           18 state python extends HighlightEntry
           19 {
           20   /* Comments. */
           21   /#/ {
           22     comment_face (true);
           23     language_print ($0);
           24     call (eat_one_line);
           25     comment_face (false);
           26   }
           27   /* Python strings */
           28   /(\"\"\"|[\'][\'][\'])/ {
           29     python_string_end = regexp($0);
           30     string_face (true);
           31     language_print ($0);
           32     call (python_string);
           33     string_face (false);
           34   }
           35 
           36   /(\"|[\'])/ {
           37     python_string_end = regexp( $0 );
           38     string_face (true);
           39     language_print ($0);
           40     call (python_string);
           41     string_face (false);
           42   }
           43 
           44   /* Function */
           45   /([ \t]*)(def)([ \t]+)([^(]*)/ {
           46     /* indentation */
           47     language_print ($1);
           48 
           49     /* def */
           50     keyword_face (true);
           51     language_print ($2);
           52     keyword_face (false);
           53 
           54     /* middle */
           55     language_print ($3);
           56 
           57     /* Function name. */
           58     function_name_face (true);
           59     language_print ($4);
           60     function_name_face (false);
           61   }
           62 
           63     /* Keywords
           64        (build-re '(and assert break class continue def del elif else
           65        else: except except: exec finally for from global if import in
           66        is lambda not or pass print raise return try try: while
           67        yield)) */
           68   /\b(a(nd|ssert)|break|c(lass|ontinue)|de(f|l)\
           69 |e(l(if|se(|:))|x(cept(|:)|ec))|f(inally|or|rom)|global|i(f|mport|n|s)\
           70 |lambda|not|or|p(ass|rint)|r(aise|eturn)|try(|:)|while|yield)\b/ {
           71     keyword_face (true);
           72     language_print ($0);
           73     keyword_face (false);
           74   }
           75 }
           76 
           77 
           78 /*
           79 Local variables:
           80 mode: c
           81 End:
           82 */