// Path: src/main/java/com/yanglinkui/ab/dsl/Lexer.java
// public abstract class Lexer {
// 
//     public static final char EOF = (char) -1;
// 
//     protected final String input;
//     protected int p = 0;
//     protected char c;
// 
//     public Lexer(String input) {
//         this.input = input;
//         c = input.charAt(p);
//     }
// 
//     protected void consume() {
//         p++;
//         if (p >= input.length()) c = EOF;
//         else c = input.charAt(p);
//     }
// 
//     protected void match(char x) {
//         if (c == x) {
//             consume();
//         } else {
//             throw new Error("Expecting " + x + "; found " + c);
//         }
//     }
// 
//     protected abstract Token nextToken();
// 
//     protected void WS() {
//         while (isWS(c)) {
//             consume();
//         }
//     }
// 
//     protected boolean isWS(char c) {
//         return (c==' ' || c=='\t' || c=='\n' || c=='\r');
//     }
// 
// }
// 
// Path: src/main/java/com/yanglinkui/ab/dsl/Token.java
// public abstract class Token {
//     protected int type;
//     protected String text;
//     protected String name;
// 
//     public Token(int type, String name, String text) {
//         this.type=type;
//         this.name = name;
//         this.text=text;
//     }
// 
//     public String toString() {
//         return "<'" + text + "'," + name + ">";
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public String getText() {
//         return text;
//     }
// 
//     public void setText(String text) {
//         this.text = text;
//     }
// }


import com.yanglinkui.ab.dsl.Lexer;
import com.yanglinkui.ab.dsl.Token;
package com.yanglinkui.ab.dsl.service;


/**
 * Created by jonas on 2017/1/6.
 */
public class ServiceLexer extends Lexer {

    public ServiceLexer(String input) {
        super(input);
    }

// Path: src/main/java/com/yanglinkui/ab/dsl/Lexer.java
// public abstract class Lexer {
// 
//     public static final char EOF = (char) -1;
// 
//     protected final String input;
//     protected int p = 0;
//     protected char c;
// 
//     public Lexer(String input) {
//         this.input = input;
//         c = input.charAt(p);
//     }
// 
//     protected void consume() {
//         p++;
//         if (p >= input.length()) c = EOF;
//         else c = input.charAt(p);
//     }
// 
//     protected void match(char x) {
//         if (c == x) {
//             consume();
//         } else {
//             throw new Error("Expecting " + x + "; found " + c);
//         }
//     }
// 
//     protected abstract Token nextToken();
// 
//     protected void WS() {
//         while (isWS(c)) {
//             consume();
//         }
//     }
// 
//     protected boolean isWS(char c) {
//         return (c==' ' || c=='\t' || c=='\n' || c=='\r');
//     }
// 
// }
// 
// Path: src/main/java/com/yanglinkui/ab/dsl/Token.java
// public abstract class Token {
//     protected int type;
//     protected String text;
//     protected String name;
// 
//     public Token(int type, String name, String text) {
//         this.type=type;
//         this.name = name;
//         this.text=text;
//     }
// 
//     public String toString() {
//         return "<'" + text + "'," + name + ">";
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public String getText() {
//         return text;
//     }
// 
//     public void setText(String text) {
//         this.text = text;
//     }
// }


// Path: src/main/java/com/yanglinkui/ab/dsl/service/ServiceLexer.java
import com.yanglinkui.ab.dsl.Lexer;
import com.yanglinkui.ab.dsl.Token;

package com.yanglinkui.ab.dsl.service;


/**
 * Created by jonas on 2017/1/6.
 */
public class ServiceLexer extends Lexer {

    public ServiceLexer(String input) {
        super(input);
    }

    public Token nextToken() {