comparison c/regexParser/main.cc @ 61:67cade0e35b0

impl isLiteral
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 14 Jul 2015 16:00:44 +0900
parents 8616a045a7f4
children a49b4a8b8c14
comparison
equal deleted inserted replaced
60:8616a045a7f4 61:67cade0e35b0
62 NodePtr n = createNode(c,0,0); 62 NodePtr n = createNode(c,0,0);
63 ptr++; 63 ptr++;
64 return n; 64 return n;
65 } 65 }
66 66
67 bool isLiteral(char c) {
68 if (('a'<=c && c<='z')||('A'<=c && c<='Z')||('0'<=c && c<='9')) {
69 return true;
70 }
71 return false;
72 }
73
67 // <string> ::= <literal><literal>* 74 // <string> ::= <literal><literal>*
68 NodePtr string() { 75 NodePtr string() {
69 char c = *ptr; 76 char c = *ptr;
70 NodePtr n = NULL; 77 NodePtr n = NULL;
71 if (('a'<=c && c<='z')||('A'<=c && c<='Z')||('0'<=c && c<='9')) { 78 if (isLiteral(c)) {
72 n = createNode(0,literal(),string()); 79 n = createNode(0,literal(),string());
73 } else { 80 } else {
74 n = createNode(0,0,0); 81 n = createNode(0,0,0);
75 } 82 }
76 return n; 83 return n;