当前位置: 首页>>代码示例>>Java>>正文


Java Parser.Reference方法代码示例

本文整理汇总了Java中org.codehaus.jparsec.Parser.Reference方法的典型用法代码示例。如果您正苦于以下问题:Java Parser.Reference方法的具体用法?Java Parser.Reference怎么用?Java Parser.Reference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.codehaus.jparsec.Parser的用法示例。


在下文中一共展示了Parser.Reference方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: statementParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private static Parser<ExpressionNode> statementParser(
        Parser<ExpressionNode> expParser) {
    Parser.Reference<ExpressionNode> reference = Parser.newReference();
    Parser<ExpressionNode> lazyExpr = reference.lazy();
    Parser<ExpressionNode> nestedParser = statementSequenceParser(lazyExpr,
            expParser);
    Parser<ExpressionNode> parser = Parsers.sequence(token("begin"),
            statementSequenceParser(lazyExpr, expParser), token("end"),
            new Map3<Token, ExpressionNode, Token, ExpressionNode>() {
        public ExpressionNode map(Token begin, ExpressionNode body,
                Token end) {
            return new StatementNode(tokenLocation(begin).join(
                    tokenLocation(end)), (SequenceNode) body);
        }
    });
    reference.set(nestedParser);
    return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:19,代码来源:Reader.java

示例2: fieldOrFunctionParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
protected Parser<QlField> fieldOrFunctionParser() {
	Parser.Reference<QlField> fieldOrFuncParserRef = Parser.newReference();
	Parser<Tuple3<String, QlField, Boolean>> simpleParser = simpleFieldParser();
	Parser<Tuple3<String, QlField, Boolean>> fieldParser = fieldParser(fieldOrFuncParserRef);
	Parser<QlField> fieldOrFuncParser = 
			Parsers.or(functionParser(fieldOrFuncParserRef), fieldParser, 
					simpleParser).map(
			new Map<Tuple3<String, QlField, Boolean>, QlField>() {
				@Override
				public QlField map(Tuple3<String, QlField, Boolean> fieldInfo) {
					return QlField.create(null, fieldInfo.a, fieldInfo.b,
							fieldInfo.c);
				}
			});
	fieldOrFuncParserRef.lazySet(fieldOrFuncParser);
	return fieldOrFuncParser;
}
 
开发者ID:lithiumtech,项目名称:starql,代码行数:18,代码来源:JparsecQueryMarkupManager.java

示例3: fieldOrFunctionParserOB

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
protected Parser<Pair<QlField, QlSortOrderType>> fieldOrFunctionParserOB() {
	Parser.Reference<Pair<QlField, QlSortOrderType>> fieldOrFuncParserRef = Parser.newReference();
	Parser<Tuple3<String, Pair<QlField, QlSortOrderType>, Boolean>> simpleParser = simpleFieldParserOB();
	Parser<Tuple3<String, Pair<QlField, QlSortOrderType>, Boolean>> fieldParser = fieldParserOB(fieldOrFuncParserRef);
	Parser<Pair<QlField, QlSortOrderType>> fieldOrFuncParser = 
			Parsers.or(functionParserOB(fieldOrFuncParserRef), fieldParser, 
					simpleParser).map(
			new Map<Tuple3<String, Pair<QlField, QlSortOrderType>, Boolean>, Pair<QlField, QlSortOrderType>>() {
				@Override
				public Pair<QlField, QlSortOrderType> map(Tuple3<String, Pair<QlField, QlSortOrderType>, Boolean> fieldInfo) {
					return new Pair<QlField, QlSortOrderType>(QlField.create(null, fieldInfo.a, fieldInfo.b.a,
							fieldInfo.c), QlSortOrderType.DEFAULT);
				}
			});
	fieldOrFuncParserRef.lazySet(fieldOrFuncParser);
	return fieldOrFuncParser;
}
 
开发者ID:lithiumtech,项目名称:starql,代码行数:18,代码来源:JparsecQueryMarkupManager.java

示例4: qualifiedFieldOrFunctionParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
protected Parser<QlField> qualifiedFieldOrFunctionParser() {
	Parser.Reference<QlField> fieldOrFuncParserRef = Parser.newReference();
	Parser<Tuple3<String, QlField, Boolean>> simpleParser = simpleFieldParser();
	Parser<Tuple3<String, QlField, Boolean>> fieldParser = fieldParser(fieldOrFuncParserRef);
	Parser<String> qualifierParser = regex("[a-zA-Z]+\\s+", false)
			.followedBy(regex("from", false).not().peek()).atomic().optional(null);
	Parser<QlField> fieldOrFuncParser = Parsers.pair(qualifierParser,
			Parsers.or(functionParser(fieldOrFuncParserRef), fieldParser, 
					simpleParser)).map(
			new Map<Pair<String, Tuple3<String, QlField, Boolean>>, QlField>() {
				@Override
				public QlField map(
						Pair<String, Tuple3<String, QlField, Boolean>> fieldInfo) {
					String qualifier = fieldInfo.a == null ? null : fieldInfo.a.trim();
					return QlField.create(qualifier, fieldInfo.b.a, fieldInfo.b.b,
							fieldInfo.b.c);
				}
			});
	fieldOrFuncParserRef.lazySet(fieldOrFuncParser);
	return fieldOrFuncParser;
}
 
开发者ID:lithiumtech,项目名称:starql,代码行数:22,代码来源:JparsecQueryMarkupManager.java

示例5: parse

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
/** Parses {@code string} to a {@link TypeToken}. */
public TypeToken<?> parse(String string) throws ParserException {
  Parser.Reference<Type> ref = Parser.newReference();
  Parser<Type> type = Parsers.or(
      wildcardType(ref.lazy()), parameterizedType(ref.lazy()), arrayClass(), rawType());
  ref.set(type.postfix(TERMS.phrase("[", "]").retn(Types::newArrayType)));
  return TypeToken.of(
      ref.get().from(TERMS.tokenizer(), Scanners.WHITESPACES.optional()).parse(string));
}
 
开发者ID:jparsec,项目名称:jparsec-g,代码行数:10,代码来源:TypeParser.java

示例6: shapeParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private Parser<MatrixShape> shapeParser() {
	Parser.Reference<MatrixShape> reference = Parser.newReference();
	Parser<MatrixShape> lazyExpr = reference.lazy();
	Parser<MatrixShape> parser = Parsers.or(shapeBinOpParser(lazyExpr),
			powerShapeParser(lazyExpr),
			shapeUnOpParser(lazyExpr), bangShapeParser(),
			scalarShapeParser());
	reference.set(parser);
	return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:11,代码来源:Machine.java

示例7: expressionParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private Parser<Expression> expressionParser() {
	Parser.Reference<Expression> reference = Parser.newReference();
	Parser<Expression> lazyExpr = reference.lazy();
	Parser<Expression> parser = Parsers.or(applicationParser(lazyExpr),
			applicationDebugParser(lazyExpr), ifParser(lazyExpr),
			lambdaParser(lazyExpr), constParser(), stringParser(), literalMatrix(),
			matrixConstructorParser(), keyParser(), VARIABLE);
	reference.set(parser);
	return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:11,代码来源:Machine.java

示例8: unitParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private Parser<Unit> unitParser() {
	Parser.Reference<Unit> reference = Parser.newReference();
	Parser<Unit> lazyExpr = reference.lazy();
	Parser<Unit> parser = Parsers.or(unitPower(lazyExpr),
			unitMult(lazyExpr), unitDiv(lazyExpr), unitScaled(),
			unitNamed());
	reference.set(parser);
	return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:10,代码来源:Machine.java

示例9: typeParserRec

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private static Parser<TypeNode> typeParserRec() {
    Parser.Reference<TypeNode> reference = Parser.newReference();
    Parser<TypeNode> termParser = termParser();
    Parser<TypeNode> lazyExpr = reference.lazy();
    Parser<TypeNode> parser = Parsers.or(typeSchemeParser(lazyExpr),
            functionTypeParser(lazyExpr),
            simpleFunctionTypeParser(lazyExpr),
            parametricTypeParser(lazyExpr), matrixTypeParser(Parsers.or(
            parametricTypeParser(lazyExpr), termParser)),
            matrixTermIdentifier());
    reference.set(parser);
    return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:14,代码来源:Reader.java

示例10: ifRestParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private static Parser<List<Pair<ExpressionNode, ExpressionNode>>> ifRestParser(
        Parser<ExpressionNode> statementParser,
        Parser<ExpressionNode> expParser) {

    Parser.Reference<List<Pair<ExpressionNode, ExpressionNode>>> reference = Parser
            .newReference();

    Parser<List<Pair<ExpressionNode, ExpressionNode>>> parser = Parsers.or(
            ifRestEndParser(statementParser, expParser),
            ifRestRestParser(statementParser, expParser, reference.lazy()));

    reference.set(parser);

    return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:16,代码来源:Reader.java

示例11: expressionParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
private static Parser<ExpressionNode> expressionParser() {
    Parser.Reference<ExpressionNode> reference = Parser.newReference();
    Parser<ExpressionNode> lazyExpr = reference.lazy();
    Parser<ExpressionNode> parser = Parsers.or(
            arithmeticParser(nonArithmeticParser(lazyExpr)),
            nonArithmeticParser(lazyExpr));
    reference.set(parser);
    return parser;
}
 
开发者ID:pgriffel,项目名称:pacioli,代码行数:10,代码来源:Reader.java

示例12: fieldParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
protected Parser<Tuple3<String, QlField, Boolean>> fieldParser(
		Parser.Reference<QlField> fieldOrFuncParserRef) {
	return Parsers.tuple(
			alphaNumeric().followedBy(padWithWhitespace(regex("\\.", true), false)), 
			fieldOrFuncParserRef.lazy(), 
			Parsers.constant(false));

}
 
开发者ID:lithiumtech,项目名称:starql,代码行数:9,代码来源:JparsecQueryMarkupManager.java

示例13: fieldParserOB

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
protected Parser<Tuple3<String, Pair<QlField, QlSortOrderType>, Boolean>> fieldParserOB(
		Parser.Reference<Pair<QlField, QlSortOrderType>> fieldOrFuncParserRef) {
	return Parsers.tuple(
			alphaNumeric().followedBy(padWithWhitespace(regex("\\.", true), false)), 
			fieldOrFuncParserRef.lazy(), 
			Parsers.constant(false));

}
 
开发者ID:lithiumtech,项目名称:starql,代码行数:9,代码来源:JparsecQueryMarkupManager.java

示例14: one

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
public static Parser<ExprNode> one ()
{
    Parser.Reference<ExprNode> ref = Parser.newReference();
    Parser<ExprNode> lazy = ref.lazy();

    Parser<ExprNode> parser;
    parser = Parsers.or(BOOLEAN_PARSER, NULL_PARSER, DECIMAL_PARSER, INTEGER_PARSER, NAME_PARSER, STRING_PARSER);
    parser = Parsers.or(paren(lazy), list(lazy), dict(lazy), set(lazy), parser);

    parser = new OperatorTable<ExprNode>()
            .postfix(qualified(), 120)
            .postfix(invocationWithParens(lazy), 120)
            .infixl(binary("|", term("|")), 110)
            .infixr(binary("**", term("**")), 100)
            .infixl(binary("*", term("*")), 90)
            .infixl(binary("/", term("/")), 90)
            .infixl(binary("//", term("//")), 90)
            .infixl(binary("%", term("%")), 90)
            .infixl(binary("+", term("+")), 80)
            .infixl(binary("-", term("-")), 80)
            .infixl(binary("~", term("~")), 70)
            .infixl(binary("not in", TagParsers.name("not", "in")), 60)
            .infixl(binary("in", TagParsers.name("in")), 60)
            .infixl(binary("is not", TagParsers.name("is", "not")), 60)
            .infixl(binary("is", TagParsers.name("is")), 60)
            .infixl(binary("<", term("<")), 60)
            .infixl(binary("<=", term("<=")), 60)
            .infixl(binary(">", term(">")), 60)
            .infixl(binary(">=", term(">=")), 60)
            .infixl(binary("==", term("==")), 60)
            .infixl(binary("!=", term("!=")), 60)
            .prefix(unary("not", TagParsers.name("not")), 50)
            .infixl(binary("and", TagParsers.name("and")), 40)
            .infixl(binary("or", TagParsers.name("or")), 30)
            .infixl(ifElse(lazy), 20)
            .build(parser);

    ref.set(parser);

    return Marker.mark(parser);
}
 
开发者ID:impl,项目名称:yashiro,代码行数:42,代码来源:ExpressionParser.java

示例15: functionParser

import org.codehaus.jparsec.Parser; //导入方法依赖的package包/类
protected Parser<Tuple3<String,QlField,Boolean>> functionParser(Parser.Reference<QlField> fieldOrFuncParserRef) {
	return Parsers.tuple(alphaNumeric().followedBy(padWithWhitespace(regex("\\(", true), false)),
						insideFunctionParser(fieldOrFuncParserRef),
						Parsers.constant(true));
}
 
开发者ID:lithiumtech,项目名称:starql,代码行数:6,代码来源:JparsecQueryMarkupManager.java


注:本文中的org.codehaus.jparsec.Parser.Reference方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。