⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ql.jjt

📁 bpel执行引擎用来执行bpel业务流程
💻 JJT
字号:
options {
  MULTI=true;
  NODE_DEFAULT_VOID=true;
  STATIC=false;
}

PARSER_BEGIN(QLParser)

package org.apache.ode.ql.jcc;

import java.io.*;

class QLParser {
}

PARSER_END(QLParser)


SKIP :
{
  " "
| "\t"
| "\n"
| "\r"
}

TOKEN :
{
	< LESS: "<" >
|
	< GREATER: ">" >
|
	< LE: "<=" >
|
	< GE: ">=" >
|
	< IN: "in" >
|
	< LIKE: "like" >
|
	< AND: "and" >
|
	< OR: "or" >
|
	< EQUAL: "=" >
|
  < ORDER_BY: "order" (<WHITESPACE>)+ "by" (<WHITESPACE>)+ >
|
  < ORDER_TYPE: "asc" | "desc" >
|  
  < PARAMETER_CHAR: "?" >
|  
  < LIMIT: "limit" (<WHITESPACE>)+ >
|
  < NUMBER: (["0"-"9"])+ >
|
  < PROPERTY: ("$")("{"<NAMESPACE>"}")?(<QNAME_NAME>) >
|
  < #NAMESPACE: <LETTER>(<LETTER> | <DIGIT>)* >
|  
  < #QNAME_NAME: <LETTER>(<LETTER> | <DIGIT>)* >
|  
  < FIELD: <LETTER>(<LETTER> | <DIGIT>)* >
|
  < VALUE: "\"" (~["\""])* "\"" >
|
  < #LETTER: ["_","-",".","a"-"z","A"-"Z"] >
|
  < #SPEC_CHAR: ["*","&","?",":","%"] >
|
  < #DIGIT: ["0","1","2","3","4","5","6","7","8","9"] >
|
  < #WHITESPACE: [" ", "\t", "\n", "\r"] >

}

ASTStart start() #Start : {}
{
	
  Query() 
  { return jjtThis; }
}

void Query() : {}
{
	[LogicExpression()] [OrderByExpression()] [Limit()]<EOF>
}
void Limit() #Limit : 
{
	Token t;
}
{
	(<LIMIT>)
	(
		t=<NUMBER> {
			jjtn000.setNumber(t.image);
		}
	)
}
void LogicExpression() : {}
{
	ORExpression()
}
void OrderByExpression() #OrderBy : {}
{
	<ORDER_BY> OrderByField() ("," OrderByField())*
}
void OrderByField() #OrderByField : {}
{
	Field() (OrderType())?
}
void OrderType() #OrderType : {
	Token t;
}
{
	t=<ORDER_TYPE> {
		jjtn000.setValue(t.image);
	}
}
void ORExpression() : {}
{
	(
		ANDExpression() (<OR> ANDExpression())*
	)#Or(>1)
}

void ANDExpression() : {}
{
	(
	  CompareExpression() (<AND> CompareExpression())*
	)#And(>1)
}

void CompareExpression() : {}
{
	Identifier() 
	(
			Equal()
		|
			LessExpression()
		|
			GreaterExpression()
		|
			LEExpression()
		|
			GEExpression()
		|
			InExpression()
		|
			Like()
	)
|
	"(" LogicExpression() ")"
}

void Equal() #Equal(2) : {}
{
	<EQUAL> Value()
}
void Like() #Like(2) : {}
{
	<LIKE> Value()
}
void LessExpression() #Less(2) : {}
{
  <LESS> Value()
}
void GreaterExpression() #Greater(2) : {}
{
  <GREATER> Value()
}
void LEExpression() #LE(2) : {}
{
  <LE> Value()
}
void GEExpression() #GE(2) : {}
{
  <GE> Value()
}
void InExpression() #In(2) : {}
{
	<IN> InValuesExpression()
}
void InValuesExpression() #InValues : {}
{
	"(" [(Value() ("," Value())*)] ")"
}
void Identifier() : {}
{
	Field() | Property()
}

void Field() #Field : 
{
  Token t;
}
{
	t=<FIELD>
	{
		jjtn000.setName(t.image);
	}
	
}
void Property() #Property : 
{
  Token t;
}
{
	t=<PROPERTY>{
			jjtn000.setName(t.image);
		} 
}
void Value() #Value : 
{
  Token t;
}
{
	t=<VALUE>
	{
		jjtn000.setValue(t.image);
	}
|
	<PARAMETER_CHAR>
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -