Я хочу, чтобы реализовать правила кодирования в моем парсер, генерируемый JavaCC:проверить, если каждая глобальная переменная используется
является глобальная переменная используется в операторе?
Правило JavaCC Производство является:
TOKEN :
{
< ID : ([ "a"-"z"])* >
}
void myProgram() #programm: {}
{
initialisation()
MyMethod()
{return jjtThis;}
}
void MyMethod() #MyMethod : {}
{
<begin> <id> "(" (Argument())* ")" {}
(Statement()) *
<end>
}
void Argument() : {}
{
<String> <id>
<int> <id>
}
void statement() : {}
{
DeclarationVariable()
......
}
void initialisation() : {}
{
DeclarationVariable()
}
void DeclarationVariable() : {}
{
StringDeclarationVariable()
}
void StringDeclarationVariable() :{}
{
<STRING> <id> ["=" StringStructure()]
}
void StringStructure() : {}
{
CallMyMethod()
VarariableString()
}
void VarariableString() : {}
{<ID>
}
void CallMyMethod () : {}
{
<id> "(" (
ExpressionTreeStructure()
(
"," ExpressionTreeStructure()
) *
) *
")"
}
void ExpressionTreeStructure () {}
{
......
}
мой вопрос, как я могу проверить это глобальная переменная используется в операторе ?. Заранее спасибо.
Сначала неясно, что вы просите. Возможно, вы имеете в виду «использовать», а не «называли». Во-вторых, ваш код для 'Statement1' не является синтаксически корректным JavaCC; это только добавляет к путанице. Наконец, я не думаю, что это вопрос о JavaCC вообще; насколько я могу судить, речь идет о обработке языка, которая находится в нисходящем потоке от разбора и построения дерева. Попробуйте улучшить вопрос и пометьте его соответствующим образом. –
Я хочу знать, используется ли глобальная переменная, поэтому я хочу использовать это правило проверки при разборе, генерируемом JavaCC. Заранее спасибо. – kadahowa
@ Теодор Норвелл, я улучшил вопрос (исправление правил создания javaCC) и, соответственно, тег. Заранее спасибо – kadahowa