.t.e.s.t. Heredocs
LINE_COMMENT    "# Simple swing-based application\n", st=0
WHITESPACE      "\n", la=1, st=0
LINE_COMMENT    "# Import Java packages\n", st=0
IDENTIFIER      "include", la=1, st=2
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_ARG,null,null]
CONSTANT        "Java", la=1, st=2
WHITESPACE      "\n\n", la=1, st=RubyLexerState[commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "import", la=1, st=3
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_CMDARG,null,null]
IDENTIFIER      "javax", la=1, st=2
DOT             ".", la=1, st=7
IDENTIFIER      "swing", la=1, st=2
DOT             ".", la=1, st=7
CONSTANT        "JFrame", la=1, st=2
WHITESPACE      "\n\n", la=1, st=RubyLexerState[commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "x", la=1, st=3
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_CMDARG,null,null]
NONUNARY_OP     "=", la=1, st=0
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_BEG,null,null]
IDENTIFIER      "x", la=1, st=2
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_ARG,null,null]
NONUNARY_OP     "+", la=1, st=0
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_BEG,null,null]
INT_LITERAL     "1", la=1, st=1
WHITESPACE      "\n\n", la=1, st=RubyLexerState[commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "frame", la=1, st=3
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_CMDARG,null,null]
NONUNARY_OP     "=", la=1, st=0
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_BEG,null,null]
CONSTANT        "JFrame", la=1, st=2
DOT             ".", la=1, st=7
IDENTIFIER      "new", la=1, st=2
LPAREN          "(", st=RubyLexerState[commandstart,null,EXPR_BEG,null,null]
QUOTED_STRING_BEGIN  """, st=RubyLexerState[substituting,StringTerm[flags=expand,end=",begin=0,nest=0,embed=1],EXPR_BEG,StringTermState[nest=0,embed=1],null]
QUOTED_STRING_LITERAL  "Hello Swing", la=1, st=RubyLexerState[substituting,StringTerm[flags=expand,end=",begin=0,nest=0,embed=1],EXPR_BEG,StringTermState[nest=0,embed=1],null]
QUOTED_STRING_END  """, st=RubyLexerState[substituting,null,EXPR_END,null,null]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "button", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_CMDARG,null,null]
NONUNARY_OP     "=", la=1, st=RubyLexerState[substituting,null,EXPR_BEG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
IDENTIFIER      "javax", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "swing", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
CONSTANT        "JButton", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "new", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
QUOTED_STRING_BEGIN  """, st=RubyLexerState[substituting,StringTerm[flags=expand,end=",begin=0,nest=0,embed=1],EXPR_BEG,StringTermState[nest=0,embed=1],null]
QUOTED_STRING_LITERAL  "Klick Me!", la=1, st=RubyLexerState[substituting,StringTerm[flags=expand,end=",begin=0,nest=0,embed=1],EXPR_BEG,StringTermState[nest=0,embed=1],null]
QUOTED_STRING_END  """, st=RubyLexerState[substituting,null,EXPR_END,null,null]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "x", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_CMDARG,null,null]
NONUNARY_OP     "=", la=1, st=RubyLexerState[substituting,null,EXPR_BEG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
IDENTIFIER      "f", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
STRING_BEGIN    "<<EOT", la=1, st=RubyLexerState[-,null,EXPR_BEG,null,HeredocContext(count=2):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0]]
IDENTIFIER      ",", st=RubyLexerState[-,null,EXPR_BEG,null,HeredocContext(count=2):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0]]
STRING_BEGIN    "<<EOY", la=1, st=RubyLexerState[-,null,EXPR_BEG,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
IDENTIFIER      ",", st=RubyLexerState[-,null,EXPR_BEG,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
WHITESPACE      " ", la=1, st=RubyLexerState[spaceseen,null,EXPR_BEG,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
QUOTED_STRING_BEGIN  """, st=RubyLexerState[substituting,StringTerm[flags=expand,end=",begin=0,nest=0,embed=1],EXPR_BEG,StringTermState[nest=0,embed=1],HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
QUOTED_STRING_LITERAL  "another string", la=1, st=RubyLexerState[substituting,StringTerm[flags=expand,end=",begin=0,nest=0,embed=1],EXPR_BEG,StringTermState[nest=0,embed=1],HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
QUOTED_STRING_END  """, st=RubyLexerState[substituting,null,EXPR_END,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
IDENTIFIER      ",", st=RubyLexerState[substituting,null,EXPR_BEG,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
INT_LITERAL     "50", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
WHITESPACE      "  ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_END,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
LINE_COMMENT    "# Comment _here_\n", st=RubyLexerState[substituting|commandstart|spaceseen,null,EXPR_BEG,null,HeredocContext(count=4):end:false,term:HeredocTerm[2,EOT,null,0],end:true,term:HeredocTerm[2,EOT,null,0],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
QUOTED_STRING_LITERAL  "xFoo bar\n", la=4, st=RubyLexerState[substituting|commandstart,HeredocTerm[2,EOT,null,1],EXPR_BEG,HeredocTermState[1],HeredocContext(count=3):end:true,term:HeredocTerm[2,EOT,null,1],end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
QUOTED_STRING_END  "EOT\n", st=RubyLexerState[substituting|commandstart,null,EXPR_END,null,HeredocContext(count=2):end:false,term:HeredocTerm[2,EOY,null,0],end:true,term:HeredocTerm[2,EOY,null,0]]
QUOTED_STRING_LITERAL  "hello\n", la=4, st=RubyLexerState[substituting|commandstart,HeredocTerm[2,EOY,null,1],EXPR_END,HeredocTermState[1],HeredocContext(count=1):end:true,term:HeredocTerm[2,EOY,null,1]]
QUOTED_STRING_END  "EOY\n", st=RubyLexerState[substituting|commandstart,null,EXPR_END,null,null]
IDENTIFIER      "done", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
CLASS           "class", la=1, st=RubyLexerState[substituting,null,EXPR_CLASS,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_CLASS,null,null]
CONSTANT        "ClickAction", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
WHITESPACE      "  ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
IDENTIFIER      "include", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_ARG,null,null]
IDENTIFIER      "java", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "awt", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "event", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
CONSTANT        "ActionListener", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
WHITESPACE      "  ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
DEF             "def", la=1, st=RubyLexerState[substituting,null,EXPR_FNAME,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_FNAME,null,null]
IDENTIFIER      "actionPerformed", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "evt", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
WHITESPACE      "    ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
IDENTIFIER      "javax", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "swing", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
CONSTANT        "JOptionPane", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "showMessageDialog", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
ANY_KEYWORD     "nil", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
IDENTIFIER      ",", st=RubyLexerState[substituting,null,EXPR_BEG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
STRING_BEGIN    "<<EOS", la=1, st=RubyLexerState[-,null,EXPR_BEG,null,HeredocContext(count=2):end:false,term:HeredocTerm[2,EOS,null,0],end:true,term:HeredocTerm[2,EOS,null,0]]
RPAREN          ")", st=RubyLexerState[-,null,EXPR_END,null,HeredocContext(count=2):end:false,term:HeredocTerm[2,EOS,null,0],end:true,term:HeredocTerm[2,EOS,null,0]]
WHITESPACE      "\n", la=1, st=RubyLexerState[commandstart,null,EXPR_BEG,null,HeredocContext(count=2):end:false,term:HeredocTerm[2,EOS,null,0],end:true,term:HeredocTerm[2,EOS,null,0]]
QUOTED_STRING_LITERAL  "<html>Hello from <b><u>JRuby</u></b>.<br>\nButton '", la=2, st=RubyLexerState[substituting|commandstart,HeredocTerm[2,EOS,null,1],EXPR_BEG,HeredocTermState[1],HeredocContext(count=1):end:true,term:HeredocTerm[2,EOS,null,1]]
STRING_LITERAL  "#{", st=RubyLexerState[embedded|substituting|commandstart,HeredocTerm[2,EOS,null,2],EXPR_BEG,HeredocTermState[2],HeredocContext(count=1):end:true,term:HeredocTerm[2,EOS,null,2]]
EMBEDDED_RUBY   "evt.getActionCommand()", la=1, st=RubyLexerState[substituting|commandstart,HeredocTerm[2,EOS,null,1],EXPR_BEG,HeredocTermState[1],HeredocContext(count=1):end:true,term:HeredocTerm[2,EOS,null,1]]
QUOTED_STRING_LITERAL  "}' clicked.\n", la=4, st=RubyLexerState[substituting|commandstart,HeredocTerm[2,EOS,null,1],EXPR_BEG,HeredocTermState[1],HeredocContext(count=1):end:true,term:HeredocTerm[2,EOS,null,1]]
QUOTED_STRING_END  "EOS\n", st=RubyLexerState[substituting|commandstart,null,EXPR_END,null,null]
WHITESPACE      "  ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_END,null,null]
END             "end", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
END             "end", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "button", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "add_action_listener", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
CONSTANT        "ClickAction", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "new", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
LINE_COMMENT    "# Add the button to the frame\n", st=RubyLexerState[substituting,null,EXPR_BEG,null,null]
IDENTIFIER      "frame", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "get_content_pane", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "add", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "button", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
LINE_COMMENT    "# Show frame\n", st=RubyLexerState[substituting,null,EXPR_BEG,null,null]
IDENTIFIER      "frame", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "set_default_close_operation", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
LPAREN          "(", st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
CONSTANT        "JFrame", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
IDENTIFIER      "::", st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
CONSTANT        "EXIT_ON_CLOSE", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
RPAREN          ")", st=RubyLexerState[substituting,null,EXPR_END,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "frame", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "pack", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
WHITESPACE      "\n", la=1, st=RubyLexerState[substituting|commandstart,null,EXPR_BEG,null,null]
IDENTIFIER      "frame", la=1, st=RubyLexerState[substituting,null,EXPR_CMDARG,null,null]
DOT             ".", la=1, st=RubyLexerState[substituting,null,EXPR_DOT,null,null]
IDENTIFIER      "visible", la=1, st=RubyLexerState[substituting,null,EXPR_ARG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_ARG,null,null]
NONUNARY_OP     "=", la=1, st=RubyLexerState[substituting,null,EXPR_BEG,null,null]
WHITESPACE      " ", la=1, st=RubyLexerState[substituting|spaceseen,null,EXPR_BEG,null,null]
ANY_KEYWORD     "true", la=1, st=RubyLexerState[substituting,null,EXPR_END,null,null]
----- EOF -----

<Unnamed test>
----- EOF -----

