Package seph.lang.ast

Examples of seph.lang.ast.LiteralMessage


                            read();
                            sb.append((char)rr);
                            break;
                        default:
                            if(name == null) {
                                top.currentMessageChain.add(new LiteralMessage(runtime.newRegexp(pattern, sb.toString()), null, sourcename, l, cc));
                                top.added();
                                return;
                            }
                            if(pattern.length() > 0) {
                                args.add(new LiteralMessage(runtime.newUnescapedText(pattern), null, sourcename, l, cc));
                            }
                            args.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                            top.currentMessageChain.add(NamedMessage.create(name, PersistentList.create(args), null, sourcename, l, cc, scope));
                            top.added();
                            return;
                        }
                    }
                } else {
                    sb.append((char)rr);
                }
                break;
            case ']':
                read();
                if(!slash) {
                    String pattern = sb.toString();

                    sb = new StringBuilder();
                    while(true) {
                        switch(rr = peek()) {
                        case 'x':
                        case 'i':
                        case 'u':
                        case 'm':
                        case 's':
                            read();
                            sb.append((char)rr);
                            break;
                        default:
                            if(name == null) {
                                top.currentMessageChain.add(new LiteralMessage(runtime.newRegexp(pattern, sb.toString()), null, sourcename, l, cc));
                                top.added();
                                return;
                            }
                            if(pattern.length() > 0) {
                                args.add(new LiteralMessage(runtime.newUnescapedText(pattern), null, sourcename, l, cc));
                            }
                            args.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                            top.currentMessageChain.add(NamedMessage.create(name, PersistentList.create(args), null, sourcename, l, cc, scope));
                            top.added();
                            return;
                        }
                    }
                } else {
                    sb.append((char)rr);
                }
                break;
            case '%':
                read();
                if((rr = peek()) == '{') {
                    read();
                    args.add(new LiteralMessage(runtime.newUnescapedText(sb.toString()), null, sourcename, l, cc));
                    sb = new StringBuilder();
                    name = "internal:compositeRegexp";
                    args.add(parseMessageChain());
                    readWhiteSpace();
                    parseCharacter('}');
View Full Code Here


                break;
            case '"':
                read();
                if(dquote) {
                    if(name == null) {
                        top.currentMessageChain.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                        top.added();
                        return;
                    }
                    if(sb.length() > 0) {
                        args.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                    }
                    top.currentMessageChain.add(NamedMessage.create(name, PersistentList.create(args), null, sourcename, l, cc, scope));
                    top.added();
                    return;
                } else {
                    sb.append((char)rr);
                }
                break;
            case ']':
                read();
                if(!dquote) {
                    if(name == null) {
                        top.currentMessageChain.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                        top.added();
                        return;
                    }
                    if(sb.length() > 0) {
                        args.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                    }
                    top.currentMessageChain.add(NamedMessage.create(name, PersistentList.create(args), null, sourcename, l, cc, scope));
                    top.added();
                    return;
                } else {
                    sb.append((char)rr);
                }
                break;
            case '%':
                read();
                if((rr = peek()) == '{') {
                    read();
                    args.add(new LiteralMessage(runtime.newText(sb.toString()), null, sourcename, l, cc));
                    sb = new StringBuilder();
                    name = "internal:concatenateText";
                    args.add(parseMessageChain());
                    readWhiteSpace();
                    parseCharacter('}');
View Full Code Here

            decimal = false;
            parseOtherBase(sb, radix, name);
        }

        try {
            top.currentMessageChain.add(new LiteralMessage(decimal ? new DFloNum(sb.toString()) : IntNum.valueOf(sb.toString(), radix), null, sourcename, l, cc));
            top.added();
        } catch(NumberFormatException e) {
            fail(e.getMessage());
            return;
        }
View Full Code Here

TOP

Related Classes of seph.lang.ast.LiteralMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.