Examples of IrDocType


Examples of com.asakusafw.utils.java.internal.parser.javadoc.ir.IrDocType

     */
    @Test
    public void testFetchType() {
        {
            DefaultJavadocScanner scanner = string("double");
            IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null);
            assertNotNull(type);

            assertEquals(IrDocElementKind.BASIC_TYPE, type.getKind());
            IrDocBasicType elem = (IrDocBasicType) type;

            assertEquals(IrBasicTypeKind.DOUBLE, elem.getTypeKind());
            assertSameLocation(0, "double".length(), elem.getLocation());
            assertEquals(EOF, scanner.lookahead(0).getKind());
        }
        {
            DefaultJavadocScanner scanner = string("float[]");
            IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null);
            assertNotNull(type);

            assertEquals(IrDocElementKind.ARRAY_TYPE, type.getKind());
            IrDocArrayType array = (IrDocArrayType) type;
            assertSameLocation(0, "float[]".length(), array.getLocation());

            IrDocBasicType elem = (IrDocBasicType) array.getComponentType();
            assertEquals(IrBasicTypeKind.FLOAT, elem.getTypeKind());
            assertSameLocation(0, "float".length(), elem.getLocation());
            assertEquals(EOF, scanner.lookahead(0).getKind());
        }
        {
            DefaultJavadocScanner scanner = string("char[][]");
            IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null);
            assertNotNull(type);

            assertEquals(IrDocElementKind.ARRAY_TYPE, type.getKind());
            IrDocArrayType array = (IrDocArrayType) type;
            assertSameLocation(0, "char[][]".length(), array.getLocation());

            IrDocType component = array.getComponentType();
            assertEquals(IrDocElementKind.ARRAY_TYPE, component.getKind());
            IrDocArrayType array2 = (IrDocArrayType) component;
            assertSameLocation(0, "char[]".length(), array2.getLocation());

            IrDocBasicType elem = (IrDocBasicType) array2.getComponentType();
            assertEquals(IrBasicTypeKind.CHAR, elem.getTypeKind());
            assertSameLocation(0, "char".length(), elem.getLocation());
            assertEquals(EOF, scanner.lookahead(0).getKind());
        }
        {
            DefaultJavadocScanner scanner = string("java.lang.String");
            IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null);
            assertNotNull(type);
            assertEquals(IrDocElementKind.NAMED_TYPE, type.getKind());
            IrDocNamedType elem = (IrDocNamedType) type;
            assertEquals("java.lang.String", elem.getName().asString());
            assertSameLocation(0, "java.lang.String".length(), elem.getLocation());
            assertEquals(EOF, scanner.lookahead(0).getKind());
        }
        {
            DefaultJavadocScanner scanner = string("java.lang.String[]");
            IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null);
            assertNotNull(type);

            assertEquals(IrDocElementKind.ARRAY_TYPE, type.getKind());
            IrDocArrayType array = (IrDocArrayType) type;
            assertSameLocation(0, "java.lang.String[]".length(), array.getLocation());

            IrDocNamedType elem = (IrDocNamedType) array.getComponentType();
            assertEquals("java.lang.String", elem.getName().asString());
View Full Code Here

Examples of com.asakusafw.utils.java.internal.parser.javadoc.ir.IrDocType

        IrDocSimpleName name = fetchSimpleName(scanner);
        if (name != null) {
            fragments.add(name);

            IrDocType type = fetchType(scanner);
            if (type != null) {
                fragments.add(type);
            }
        }
View Full Code Here

Examples of com.asakusafw.utils.java.internal.parser.javadoc.ir.IrDocType

     */
    public static IrDocType fetchType(JavadocScanner scanner,
            Set<JavadocTokenKind> follow) {
        JavadocTokenStream stream = new DefaultJavadocTokenStream(scanner);
        stream.mark();
        IrDocType elem = fetchType(stream);
        if (!follows(stream, follow)) {
            stream.rewind();
            return null;
        } else {
            stream.discard();
View Full Code Here

Examples of com.asakusafw.utils.java.internal.parser.javadoc.ir.IrDocType

    }

    private static IrDocMethodParameter fetchMethodParameter(
            JavadocTokenStream stream) {
        stream.mark();
        IrDocType type = fetchType(stream);
        if (type == null) {
            stream.rewind();
            return null;
        } else {
            stream.discard();
        }
        IrLocation delim = type.getLocation();
        boolean varargs;
        if (consumeIfMatch(stream, DOT) != null) {
            if ((stream.lookahead(0).getKind() != DOT)
                    || (stream.lookahead(1).getKind() != DOT)) {
                stream.rewind();
                return null;
            }
            stream.nextToken();
            JavadocToken lastDot = stream.nextToken();
            delim = lastDot.getLocation();
            varargs = true;
        } else {
            varargs = false;
        }

        IrDocSimpleName name = fetchSimpleName(stream);
        if (name != null) {
            delim = name.getLocation();
        }

        IrDocMethodParameter elem = new IrDocMethodParameter();
        elem.setType(type);
        elem.setVariableArity(varargs);
        elem.setName(name);
        setLocation(elem, type.getLocation(), delim);
        return elem;
    }
View Full Code Here

Examples of com.asakusafw.utils.java.internal.parser.javadoc.ir.IrDocType

        return elem;
    }

    private static IrDocType fetchType(JavadocTokenStream stream) {
        stream.mark();
        IrDocType elem = fetchBasicType(stream);
        if (elem == null) {
            IrDocName name = fetchName(stream);
            if (name == null) {
                stream.rewind();
                return null;
            }
            elem = new IrDocNamedType(name);
            elem.setLocation(name.getLocation());
        }
        while (true) {
            stream.mark();
            if (consumeIfMatch(stream, JavadocTokenKind.LEFT_BRACKET) == null) {
                stream.rewind();
                break;
            }
            JavadocToken stop = consumeIfMatch(stream,
                JavadocTokenKind.RIGHT_BRACKET);
            if (stop == null) {
                stream.rewind();
                break;
            } else {
                stream.discard();
                IrDocArrayType t = new IrDocArrayType(elem);
                setLocation(t, elem.getLocation(), stop.getLocation());
                elem = t;
            }
        }
        stream.discard();
        return elem;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.