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


Java LexException类代码示例

本文整理汇总了Java中com.fujitsu.vdmj.lex.LexException的典型用法代码示例。如果您正苦于以下问题:Java LexException类的具体用法?Java LexException怎么用?Java LexException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: extractInformationByVDMJ

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
public static void extractInformationByVDMJ() throws LexException, ParserException {
    LexTokenReader ltr = new LexTokenReader(new File("BWDM/vdm_files/Arg2.vdmpp"), Dialect.VDM_PP);
    DefinitionReader dr = new DefinitionReader(ltr);
    ASTDefinitionList astDefinitionList = dr.readDefinitions();

    astDefinitionList.forEach(_astDefinition -> {
        if(_astDefinition.kind().equals("explicit function")) {
            TCExplicitFunctionDefinition tcExplicitFunctionDefinition = null;
            try {
                tcExplicitFunctionDefinition = ClassMapper.getInstance(TCExplicitFunctionDefinition.MAPPINGS).init().convert(_astDefinition);
            } catch (Exception e) {
                e.printStackTrace();
            }

            /* koituga if-shiki no kouzou wo motteru! ashita ha kokokara!*/
            ifExpression = (TCIfExpression) tcExplicitFunctionDefinition.body;
            TCFunctionType tcft = tcExplicitFunctionDefinition.type;
            TCTypeList tct = tcft.parameters;
            System.out.println(tct.toString());

        }
    });

}
 
开发者ID:HirokiTachiyama,项目名称:BWDM,代码行数:25,代码来源:HelloVDMJ4.java

示例2: readTypeBind

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
public ASTTypeBind readTypeBind() throws LexException, ParserException
{
	ASTPattern pattern = getPatternReader().readPattern();
	ASTTypeBind tb = null;

	if (lastToken().is(Token.COLON))
	{
		nextToken();
		tb = new ASTTypeBind(pattern, getTypeReader().readType());
	}
	else
	{
		throwMessage(2002, "Expecting ':' in type bind");
	}

	return tb;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:18,代码来源:BindReader.java

示例3: readNonDetStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTStatement readNonDetStatement(LexLocation token)
	throws ParserException, LexException
{
	checkFor(Token.PIPEPIPE, 2200, "Expecting '||'");
	checkFor(Token.BRA, 2201, "Expecting '(' after '||'");
	ASTNonDeterministicStatement block = new ASTNonDeterministicStatement(token);
	block.add(readStatement());		// Must be one

	while (ignore(Token.COMMA))
	{
		block.add(readStatement());
	}

	checkFor(Token.KET, 2202, "Expecting ')' at end of '||' block");
	return block;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:17,代码来源:StatementReader.java

示例4: readAtomicStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTStatement readAtomicStatement(LexLocation token)
	throws ParserException, LexException
{
	checkFor(Token.ATOMIC, 2203, "Expecting 'atomic'");
	checkFor(Token.BRA, 2204, "Expecting '(' after 'atomic'");
	ASTAssignmentStatementList assignments = new ASTAssignmentStatementList();

	assignments.add(readAssignmentStatement(lastToken().location));
	ignore(Token.SEMICOLON);	// Every statement has an ignorable semicolon

	while (lastToken().isNot(Token.KET))
	{
		assignments.add(readAssignmentStatement(lastToken().location));
		ignore(Token.SEMICOLON);
	}

	checkFor(Token.KET, 2205, "Expecting ')' after atomic assignments");
	return new ASTAtomicStatement(token, assignments);
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:20,代码来源:StatementReader.java

示例5: readSimpleCallStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTStatement readSimpleCallStatement()
	throws ParserException, LexException
{
	LexNameToken name =
		readNameToken("Expecting operation name in call statement");

	checkFor(Token.BRA, 2206, "Expecting '(' after call operation name");
	ASTExpressionList args = new ASTExpressionList();
	ExpressionReader er = getExpressionReader();

	if (lastToken().isNot(Token.KET))
	{
		args.add(er.readExpression());

		while (ignore(Token.COMMA))
		{
			args.add(er.readExpression());
		}
	}

   	checkFor(Token.KET, 2124, "Expecting ')' after args");

	return new ASTCallStatement(name, args);
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:25,代码来源:StatementReader.java

示例6: readLetBeStExpression

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTLetBeStExpression readLetBeStExpression(LexLocation start)
	throws ParserException, LexException
{
	ASTMultipleBind bind = getBindReader().readMultipleBind();
	ASTExpression stexp = null;

	if (lastToken().is(Token.BE))
	{
		nextToken();
		checkFor(Token.ST, 2151, "Expecting 'st' after 'be' in let expression");
		stexp = readExpression();
	}

	checkFor(Token.IN, 2152, "Expecting 'in' after bind in let expression");
	// Note we read a Connective expression for the body, so that |->
	// terminates the parse.
	return new ASTLetBeStExpression(start, bind, stexp, readConnectiveExpression());
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:19,代码来源:ExpressionReader.java

示例7: readForIndexStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTStatement readForIndexStatement(LexLocation token)
	throws ParserException, LexException
{
	LexIdentifierToken var = readIdToken("Expecting variable identifier");
	checkFor(Token.EQUALS, 2216, "Expecting '=' after for variable");
	ASTExpression from = getExpressionReader().readExpression();
	checkFor(Token.TO, 2217, "Expecting 'to' after from expression");
	ASTExpression to = getExpressionReader().readExpression();
	ASTExpression by = null;

	if (lastToken().is(Token.BY))
	{
		nextToken();
		by = getExpressionReader().readExpression();
	}

	checkFor(Token.DO, 2218, "Expecting 'do' before loop statement");
	ASTStatement body = getStatementReader().readStatement();
	return new ASTForIndexStatement(token, idToName(var), from, to, by, body);
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:21,代码来源:StatementReader.java

示例8: readConditionalStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTStatement readConditionalStatement(LexLocation token)
	throws ParserException, LexException
{
	ASTExpression exp = getExpressionReader().readExpression();
	checkFor(Token.THEN, 2219, "Missing 'then'");
	ASTStatement thenStmt = readStatement();
	ASTElseIfStatementList elseIfList = new ASTElseIfStatementList();

	while (lastToken().is(Token.ELSEIF))
	{
		LexToken elseif = lastToken();
		nextToken();
		elseIfList.add(readElseIfStatement(elseif.location));
	}

	ASTStatement elseStmt = null;

	if (lastToken().is(Token.ELSE))
	{
		nextToken();
		elseStmt = readStatement();
	}

	return new ASTIfStatement(token, exp, thenStmt, elseIfList, elseStmt);
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:26,代码来源:StatementReader.java

示例9: lastIdToken

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
/**
 * Return the last token, converted to a {@link LexIdentifierToken}. If
 * the last token is not an identifier token, an exception is thrown
 * with the message passed in.
 *
 * @return	The last token as a LexIdentifierToken.
 * @throws LexException
 */

protected LexIdentifierToken lastIdToken()
	throws ParserException, LexException
{
	LexToken tok = reader.getLast();

	if (tok.type == Token.IDENTIFIER)
	{
		LexIdentifierToken id = (LexIdentifierToken)tok;
		
		if (id.old)
		{
			throwMessage(2295, "Can't use old name here", tok);
		}
		
		return id;
	}

	throwMessage(2058, "Expecting Identifier");
	return null;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:30,代码来源:SyntaxReader.java

示例10: readType

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
public ASTType readType()
	throws ParserException, LexException
{
	ASTType type = readUnionType();

	if (lastToken().is(Token.ARROW) ||
		lastToken().is(Token.TOTAL_FUNCTION))
	{
		LexToken token = lastToken();
		nextToken();
		ASTType result = readType();

		if (result instanceof ASTVoidType)
		{
			throwMessage(2070, "Function type cannot return void type");
		}

		type = new ASTFunctionType(token.location,
			token.is(Token.ARROW), productExpand(type), result);
	}

	return type;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:24,代码来源:TypeReader.java

示例11: readLetBeStStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTLetBeStStatement readLetBeStStatement(LexLocation token)
	throws ParserException, LexException
{
	ASTMultipleBind bind = getBindReader().readMultipleBind();
	ASTExpression stexp = null;

	if (lastToken().is(Token.BE))
	{
		nextToken();
		checkFor(Token.ST, 2232, "Expecting 'st' after 'be' in let statement");
		stexp = getExpressionReader().readExpression();
	}

	checkFor(Token.IN, 2233, "Expecting 'in' after bind in let statement");
	return new ASTLetBeStStatement(token, bind, stexp, readStatement());
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:17,代码来源:StatementReader.java

示例12: readDefStatement

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTDefStatement readDefStatement(LexLocation token)
	throws ParserException, LexException
{
	checkFor(Token.DEF, 2239, "Expecting 'def'");
	DefinitionReader dr = getDefinitionReader();
	ASTDefinitionList equalsDefs = new ASTDefinitionList();

	while (lastToken().isNot(Token.IN))
	{
		equalsDefs.add(dr.readEqualsDefinition());
		ignore(Token.SEMICOLON);
	}

	checkFor(Token.IN, 2240, "Expecting 'in' after equals definitions");
	return new ASTDefStatement(token, equalsDefs, readStatement());
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:17,代码来源:StatementReader.java

示例13: readExportsFromModule

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTExportList readExportsFromModule() throws ParserException, LexException
{
	ASTExportList types = new ASTExportList();

	if (lastToken().is(Token.ALL))
	{
		LexNameToken all = new LexNameToken(getCurrentModule(), "all", lastToken().location);
		types.add(new ASTExportAll(all.location));
		nextToken();
		return types;
	}

	types.addAll(readExportsOfOneType());

	while (newType())
	{
		types.addAll(readExportsOfOneType());
	}

	return types;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:22,代码来源:ModuleReader.java

示例14: getMkTypeName

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private LexNameToken getMkTypeName(LexNameToken mktoken)
	throws ParserException, LexException
{
	String typename = mktoken.name.substring(3);	// mk_... or is_...
	String[] parts = typename.split("`");

	switch (parts.length)
	{
		case 1:
			return new LexNameToken(getCurrentModule(), parts[0], mktoken.location);

		case 2:
			return new LexNameToken(parts[0], parts[1], mktoken.location, false, true);

		default:
			throwMessage(2037, "Malformed mk_<type> name " + typename);
	}

	return null;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:21,代码来源:ExpressionReader.java

示例15: readNarrowExpression

import com.fujitsu.vdmj.lex.LexException; //导入依赖的package包/类
private ASTExpression readNarrowExpression(ASTVariableExpression ve)
	throws LexException, ParserException
{
	ASTNarrowExpression exp = null;

	ASTExpression test = readExpression();
	checkFor(Token.COMMA, 2301, "Expecting narrow_(expression, type)");
	TypeReader tr = getTypeReader();
	ASTType type = tr.readType();

	if (type instanceof ASTUnresolvedType)
	{
		ASTUnresolvedType nt = (ASTUnresolvedType)type;
		exp = new ASTNarrowExpression(ve.location, nt.typename, test);
	}
	else
	{
		exp = new ASTNarrowExpression(ve.location, type, test);
	}

	checkFor(Token.KET, 2302, "Expecting ')' after narrow_ expression");
	return exp;
}
 
开发者ID:nickbattle,项目名称:FJ-VDMJ,代码行数:24,代码来源:ExpressionReader.java


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