/[svn]/linuxsampler/trunk/src/scriptvm/editor/nksp.l
ViewVC logotype

Diff of /linuxsampler/trunk/src/scriptvm/editor/nksp.l

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3562 by schoenebeck, Fri Aug 23 12:51:58 2019 UTC revision 3591 by schoenebeck, Mon Sep 2 09:21:43 2019 UTC
# Line 71  static int countNewLineChars(const char* Line 71  static int countNewLineChars(const char*
71    
72  DIGIT    [0-9]  DIGIT    [0-9]
73  ID       [a-zA-Z][a-zA-Z0-9_]*  ID       [a-zA-Z][a-zA-Z0-9_]*
74  METRIC   (k|h|da|d|c|m|u)  METRIC   (k|h|(da)|d|c|m|u)
75  UNIT     (s|Hz|B)  UNIT     (s|(Hz)|B)
76  END_ID   on|while|if|select|function|synchronized  END_ID   on|while|if|select|function|synchronized
77    
78  %%  %%
# Line 82  END_ID   on|while|if|select|function|syn Line 82  END_ID   on|while|if|select|function|syn
82      return yyextra->token.baseType;      return yyextra->token.baseType;
83  }  }
84    
85  {DIGIT}+ {  {DIGIT}+("."{DIGIT}+)? {
86      yyextra->token = NumberLiteralToken(yytext);      yyextra->token = NumberLiteralToken(yytext);
87      return yyextra->token.baseType;      return yyextra->token.baseType;
88  }  }
89    
90  {DIGIT}+/{METRIC}{1,2} {  {DIGIT}+("."{DIGIT}+)?/{METRIC}{1,2} {
91      yy_push_state(METRIC, yyscanner);      yy_push_state(METRIC, yyscanner);
92      yyextra->token = NumberLiteralToken(yytext);      yyextra->token = NumberLiteralToken(yytext);
93      return yyextra->token.baseType;      return yyextra->token.baseType;
94  }  }
95    
96  {DIGIT}+/{UNIT} {  {DIGIT}+("."{DIGIT}+)?/{UNIT} {
97      yy_push_state(UNIT, yyscanner);      yy_push_state(UNIT, yyscanner);
98      yyextra->token = NumberLiteralToken(yytext);      yyextra->token = NumberLiteralToken(yytext);
99      return yyextra->token.baseType;      return yyextra->token.baseType;
100  }  }
101    
102  <METRIC>{METRIC}{1,2} {  <METRIC>{METRIC}{1,2} {
103      yyextra->token = MetrixPrefixToken(yytext);      yyextra->token = MetricPrefixToken(yytext);
104      yy_pop_state(yyscanner);      yy_pop_state(yyscanner);
105      return yyextra->token.baseType;      return yyextra->token.baseType;
106  }  }
107    
108  <METRIC>{METRIC}{1,2}/{UNIT} {  <METRIC>{METRIC}{1,2}/{UNIT} {
109      yyextra->token = MetrixPrefixToken(yytext);      yyextra->token = MetricPrefixToken(yytext);
110      yy_pop_state(yyscanner);      yy_pop_state(yyscanner);
111      yy_push_state(UNIT, yyscanner);      yy_push_state(UNIT, yyscanner);
112      return yyextra->token.baseType;      return yyextra->token.baseType;
# Line 118  END_ID   on|while|if|select|function|syn Line 118  END_ID   on|while|if|select|function|syn
118      return yyextra->token.baseType;      return yyextra->token.baseType;
119  }  }
120    
  /* there is currently no support for floating point numbers in NKSP yet */  
  /*{DIGIT}+"."{DIGIT}* {  
     yyextra->token = NumberLiteralToken(yytext);  
     return yyextra->token.baseType;  
  }*/  
   
121    
122   /* Preprocessor statement:  SET_CONDITION(name) */   /* Preprocessor statement:  SET_CONDITION(name) */
123    
# Line 283  declare|while|if|or|and|not|else|case|se Line 277  declare|while|if|or|and|not|else|case|se
277      return yyextra->token.baseType;      return yyextra->token.baseType;
278  }  }
279    
280    "~"{ID} {
281        yyextra->token = RealVariableToken(yytext);
282        return yyextra->token.baseType;
283    }
284    
285  "@"{ID} {  "@"{ID} {
286      yyextra->token = StringVariableToken(yytext);      yyextra->token = StringVariableToken(yytext);
287      return yyextra->token.baseType;      return yyextra->token.baseType;
288  }  }
289    
290  "%"{ID} {  "%"{ID} {
291      yyextra->token = ArrayVariableToken(yytext);      yyextra->token = IntegerArrayVariableToken(yytext);
292        return yyextra->token.baseType;
293    }
294    
295    "?"{ID} {
296        yyextra->token = RealArrayVariableToken(yytext);
297      return yyextra->token.baseType;      return yyextra->token.baseType;
298  }  }
299    

Legend:
Removed from v.3562  
changed lines
  Added in v.3591

  ViewVC Help
Powered by ViewVC