Want more features on Pastebin? Sign Up, it's FREE!
Guest

hlsl.flex

By: drthingums on Aug 11th, 2011  |  syntax: None  |  size: 1.75 KB  |  views: 72  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package org.ksatechnology.aigedit.dom_old;
  2. import beaver.*;
  3. import org.ksatechnology.aigedit.dom_old.HLSLParser.Terminals;
  4. %%
  5. %class HLSLScanner
  6. %extends Scanner
  7. %unicode
  8. %function nextToken
  9. %type Symbol
  10. %yylexthrow Scanner.Exception
  11. %line
  12. %column
  13. %{
  14.         StringBuffer sb=new StringBuffer();
  15.         public Symbol token(short id){return token(id,null);}
  16.         public Symbol token(short id,Object v){return new Symbol(id,yyline+1,yycolumn+1,v);}
  17. %}
  18. %eofval{
  19.         return token(Terminals.EOF);
  20. %eofval}
  21. LineTerminator=\r|\n|\r\n
  22. InputCharacter=[^\r\n]
  23. Whitespace={LineTerminator} | [ \t]
  24. Comment="//"{InputCharacter}* {LineTerminator}
  25. %state STRING
  26. %%
  27. <YYINITIAL>{
  28.         "#" {return token(Terminals.HASH); }
  29.         \" { sb.setLength(0);yybegin(STRING); }
  30.         "[" { return token(Terminals.LBRACK); }
  31.         "]" { return token(Terminals.RBRACK); }
  32.         "(" { return token(Terminals.LPAREN); }
  33.         ")" { return token(Terminals.RPAREN); }
  34.         "<" { return token(Terminals.LANGLE); }
  35.         ">" { return token(Terminals.RANGLE); }
  36.         "," { return token(Terminals.COMMA); }
  37.         ";" { return token(Terminals.SEMI); }
  38.         "-"? [:digit:] [:digit:]* "." [:digit:] [:digit:]* { return token(Terminals.FLOAT,new Float(yytext())); }
  39.         "-"? [:digit:] [:digit:]* { return token(Terminals.INT,new Integer(yytext())); }
  40.         [:letter:] ([:letter:]|[:digit:]|_|"/"|"\\"|"."|"-")* { return token(Terminals.NAME,yytext()); }
  41.         {Comment}|{Whitespace} { /*ignore*/ }
  42. }
  43. <STRING>{
  44.          \" { yybegin(YYINITIAL);return token(Terminals.STRING,sb.toString()); }
  45.         [^\r\n\"] { sb.append(yytext()); }
  46.         "\\\"" { sb.append('\"'); }
  47.         //{LineTerminator} { throw new Scanner.Exception(yyline+1,yycolumn+1,"Unterminated string at end of line: "+yytext()); }
  48. }
  49. .|\n {throw new Scanner.Exception(yyline+1,yycolumn+1,"Unrecognised character:"+yytext()); }
clone this paste RAW Paste Data