Added types declarations

This commit is contained in:
Johan Maasing 2025-03-18 21:27:26 +01:00
parent 620999a992
commit 857f9c63a6
Signed by: johan
GPG key ID: FFD31BABEE2DEED2
6 changed files with 165 additions and 53 deletions

View file

@ -23,6 +23,7 @@ SKIP: {
TOKEN : {
<OPENPARANTHESIS: "(">
| <CLOSEPARANTHESIS: ")">
| <SEMICOLON: ";">
| <TRANSITION: "->">
| <SLASH: "/">
| <COLON: ":">
@ -32,63 +33,75 @@ TOKEN : {
| <IDENTIFIER: <FIRST_LETTER> (<LETTER>)* >
}
void path() :
void pathSegment() :
{Token t;}
{
t=<IDENTIFIER>{jjtThis.value = t.image;} <SLASH>
}
void paths() :
void path() :
{}
{
path() (path())*
pathSegment() (pathSegment())*
}
void payloadFieldName() :
void dataTypeFieldType() :
{Token t;}
{
t=<IDENTIFIER>{jjtThis.value = t.image;}
}
void payloadFieldType() :
void dataTypeFieldName() :
{Token t;}
{
t=<IDENTIFIER>{jjtThis.value = t.image;}
}
void payloadField() :
void dataTypeField() :
{}
{
payloadFieldName() <COLON> payloadFieldType()
dataTypeFieldName() <COLON> dataTypeFieldType()
}
void payloadFields() :
void dataTypeFields() :
{}
{
payloadField() (<COMMA> payloadField() )*
dataTypeField() (<COMMA> dataTypeField() )*
}
void handlerName() :
void compundDataTypeName() :
{Token t;}
{
t=<IDENTIFIER>{jjtThis.value = t.image;}
}
void handlerSpec() :
void compoundDataType() :
{}
{
handlerName() <OPENPARANTHESIS> payloadFields() <CLOSEPARANTHESIS>
compundDataTypeName() <OPENPARANTHESIS> dataTypeFields() <CLOSEPARANTHESIS>
}
void dataTypes() :
{}
{
(compoundDataType() )*
}
void endpoint() :
{}
{
paths() <TRANSITION> handlerSpec()
path() <TRANSITION> compoundDataType()
}
SimpleNode endpoints() :
void endpoints() :
{}
{
(endpoint() )*
}
SimpleNode specification() :
{}
{
dataTypes() endpoints()
{ return jjtThis; }
}