=======================================================================
CRV Core Grammar — ISO/IEC 14977 compliant
=======================================================================
---------- Action selector ----------
action_request
action_request
= "acquire_token" | "relinquish_token"
| "relate_agent" | "relate_other_agents"
| "endorse_token" | "coendorse_token_with_agents"
| "expose_signal_about_token" | "declare_cooccurrence_between_tokens"
| "propose_peer_exchange" | "accept_peer_exchange"
| "reject_peer_exchange" | "settle_peer_exchange"
| "post_order_to_venue" | "cancel_order_at_venue"
| "settle_trade_from_venue" | "swap_at_venue"
| "cast_vote_at_venue" | "publish_vote_outcome_from_venue"
| "gift_token" | "send_chat_message"
| "publish_announcement"
;
---------- Action invocations ----------
acquire_token
acquire_token = "acquire_token" , "(" , agent_id ,
"," , token_id , [ "," , quantity ] , [ "," , mode ] , ")" ;
acquire_token is referencing:
relinquish_token
relinquish_token = "relinquish_token" , "(" ,
agent_id , "," , token_id , [ "," , quantity ] , ")" ;
relinquish_token is referencing:
relate_agent
relate_agent = "relate_agent" , "(" , source_agent_id ,
"," , target_agent_id , "," , relation_polarity , ")" ;
relate_agent is referencing:
relate_other_agents
relate_other_agents = "relate_other_agents" , "(" ,
speaker_agent_id , "," , subject_agent_id , "," ,
object_agent_id , "," , relation_polarity , ")" ;
relate_other_agents is referencing:
endorse_token
endorse_token = "endorse_token" , "(" , speaker_agent_id ,
"," , audience , "," , token_id , "," , endorsement_polarity , ")" ;
endorse_token is referencing:
coendorse_token_with_agents
coendorse_token_with_agents = "coendorse_token_with_agents" ,
"(" , speaker_agent_id , "," , audience , "," ,
agent_a_id , "," , agent_b_id , "," , token_id , "," ,
endorsement_polarity , ")" ;
coendorse_token_with_agents is referencing:
expose_signal_about_token
expose_signal_about_token = "expose_signal_about_token" ,
"(" , speaker_agent_id , "," , audience , "," ,
token_id , "," , signal_polarity , ")" ;
expose_signal_about_token is referencing:
declare_cooccurrence_between_tokens
declare_cooccurrence_between_tokens = "declare_cooccurrence_between_tokens" ,
"(" , token_a_id , "," , token_b_id , ")" ;
declare_cooccurrence_between_tokens is referencing:
propose_peer_exchange
propose_peer_exchange = "propose_peer_exchange" ,
"(" , proposer_agent_id , "," , counterparty_agent_id ,
"," , give_map , "," , want_map , [ "," , price ] ,
[ "," , ttl ] , ")" ;
propose_peer_exchange is referencing:
accept_peer_exchange
accept_peer_exchange = "accept_peer_exchange" , "(" ,
counterparty_agent_id , "," , proposal_id , ")" ;
accept_peer_exchange is referencing:
reject_peer_exchange
reject_peer_exchange = "reject_peer_exchange" , "(" ,
counterparty_agent_id , "," , proposal_id , ")" ;
reject_peer_exchange is referencing:
settle_peer_exchange
settle_peer_exchange = "settle_peer_exchange" , "(" ,
proposal_id , "," , legs , ")" ;
settle_peer_exchange is referencing:
post_order_to_venue
post_order_to_venue = "post_order_to_venue" , "(" ,
agent_id , "," , venue_id , "," , token_id , "," ,
side , "," , quantity , "," , limit_price , "," ,
ttl , ")" ;
post_order_to_venue is referencing:
cancel_order_at_venue
cancel_order_at_venue = "cancel_order_at_venue" ,
"(" , agent_id , "," , venue_id , "," , order_id , ")" ;
cancel_order_at_venue is referencing:
settle_trade_from_venue
settle_trade_from_venue = "settle_trade_from_venue" ,
"(" , venue_id , "," , token_id , "," , price , "," ,
quantity , "," , taker_agent_id , "," , maker_agent_id ,
"," , side , ")" ;
settle_trade_from_venue is referencing:
swap_at_venue
swap_at_venue = "swap_at_venue" , "(" , agent_id ,
"," , venue_id , "," , input_token_id , "," ,
input_quantity , "," , output_token_id , "," ,
minimum_output_quantity , ")" ;
swap_at_venue is referencing:
cast_vote_at_venue
cast_vote_at_venue = "cast_vote_at_venue" , "(" ,
agent_id , "," , venue_id , "," , token_id , "," ,
stance_label , "," , stance_value , ")" ;
cast_vote_at_venue is referencing:
publish_vote_outcome_from_venue
publish_vote_outcome_from_venue = "publish_vote_outcome_from_venue" ,
"(" , venue_id , "," , token_id , "," , baseline_value , ")" ;
publish_vote_outcome_from_venue is referencing:
gift_token
gift_token = "gift_token" , "(" , from_agent_id ,
"," , to_agent_id , "," , token_id , "," , quantity , ")" ;
gift_token is referencing:
send_chat_message
send_chat_message = "send_chat_message" , "(" ,
sender_agent_id , "," , channel , "," , visibility ,
"," , utterance , ")" ;
send_chat_message is referencing:
publish_announcement
publish_announcement = "publish_announcement" , "(" ,
sender_agent_id , "," , channel , "," , payload , ")" ;
publish_announcement is referencing:
observation_envelope
observation_envelope = "observation_envelope" , "(" ,
actor_agent_id , "," , observer_agent_id , "," ,
channel , "," , visibility , "," , payload , "," ,
delivery_delay , ")" ;
observation_envelope is referencing:
representation_patch
representation_patch = "representation_patch" , "[" ,
[ patch_edit , { "," , patch_edit } ] , "]" ;
representation_patch is referencing:
patch_edit
patch_edit
= "set_identity_edge_weight" , "(" , edge_kind , "," ,
subject_id , [ "," , object_id ] , "," , new_weight , ")"
| "adjust_identity_edge_weight" , "(" , edge_kind ,
"," , subject_id , [ "," , object_id ] , "," ,
delta_weight , ")"
| "decay_identity_edges" , "(" , edge_kind , "," ,
scope_selector , "," , decay_lambda , ")"
| "remove_identity_edge" , "(" , edge_kind , "," ,
subject_id , [ "," , object_id ] , ")"
;
Items referencing patch_edit:
patch_edit is referencing:
---------- Parameter nonterminals ----------
agent_id
agent_id = Ident ;
Items referencing agent_id:
- acquire_token
- relinquish_token
- post_order_to_venue
- cancel_order_at_venue
- swap_at_venue
- cast_vote_at_venue
agent_id is referencing:
from_agent_id
from_agent_id = Ident ;
Items referencing from_agent_id:
from_agent_id is referencing:
to_agent_id
to_agent_id = Ident ;
Items referencing to_agent_id:
to_agent_id is referencing:
source_agent_id
source_agent_id = Ident ;
Items referencing source_agent_id:
source_agent_id is referencing:
target_agent_id
target_agent_id = Ident ;
Items referencing target_agent_id:
target_agent_id is referencing:
speaker_agent_id
speaker_agent_id = Ident ;
Items referencing speaker_agent_id:
speaker_agent_id is referencing:
sender_agent_id
sender_agent_id = Ident ;
Items referencing sender_agent_id:
sender_agent_id is referencing:
subject_agent_id
subject_agent_id = Ident ;
Items referencing subject_agent_id:
subject_agent_id is referencing:
object_agent_id
object_agent_id = Ident ;
Items referencing object_agent_id:
object_agent_id is referencing:
agent_a_id
agent_a_id = Ident ;
Items referencing agent_a_id:
agent_a_id is referencing:
agent_b_id
agent_b_id = Ident ;
Items referencing agent_b_id:
agent_b_id is referencing:
counterparty_agent_id
counterparty_agent_id = Ident ;
Items referencing counterparty_agent_id:
counterparty_agent_id is referencing:
proposer_agent_id
proposer_agent_id = Ident ;
Items referencing proposer_agent_id:
proposer_agent_id is referencing:
taker_agent_id
taker_agent_id = Ident ;
Items referencing taker_agent_id:
taker_agent_id is referencing:
maker_agent_id
maker_agent_id = Ident ;
Items referencing maker_agent_id:
maker_agent_id is referencing:
actor_agent_id
actor_agent_id = Ident ;
Items referencing actor_agent_id:
actor_agent_id is referencing:
observer_agent_id
observer_agent_id = Ident ;
Items referencing observer_agent_id:
observer_agent_id is referencing:
proposal_id
proposal_id = Ident ;
Items referencing proposal_id:
proposal_id is referencing:
order_id
order_id = Ident ;
Items referencing order_id:
order_id is referencing:
venue_id
venue_id = Ident ;
Items referencing venue_id:
- post_order_to_venue
- cancel_order_at_venue
- settle_trade_from_venue
- swap_at_venue
- cast_vote_at_venue
- publish_vote_outcome_from_venue
venue_id is referencing:
channel
channel = Ident ;
Items referencing channel:
channel is referencing:
visibility
visibility = Ident ;
Items referencing visibility:
visibility is referencing:
audience
audience = Ident ;
Items referencing audience:
audience is referencing:
token_id
token_id = Ident ;
Items referencing token_id:
- acquire_token
- relinquish_token
- endorse_token
- coendorse_token_with_agents
- expose_signal_about_token
- post_order_to_venue
- settle_trade_from_venue
- cast_vote_at_venue
- publish_vote_outcome_from_venue
- gift_token
token_id is referencing:
token_a_id
token_a_id = Ident ;
Items referencing token_a_id:
token_a_id is referencing:
token_b_id
token_b_id = Ident ;
Items referencing token_b_id:
token_b_id is referencing:
input_token_id
input_token_id = Ident ;
Items referencing input_token_id:
input_token_id is referencing:
output_token_id
output_token_id = Ident ;
Items referencing output_token_id:
output_token_id is referencing:
relation_polarity
relation_polarity = Ident ;
Items referencing relation_polarity:
relation_polarity is referencing:
endorsement_polarity
endorsement_polarity = Ident ;
Items referencing endorsement_polarity:
endorsement_polarity is referencing:
signal_polarity
signal_polarity = Ident ;
Items referencing signal_polarity:
signal_polarity is referencing:
stance_label
stance_label = Ident ;
Items referencing stance_label:
stance_label is referencing:
mode
mode = Ident ;
Items referencing mode:
mode is referencing:
side
side = Ident ;
Items referencing side:
side is referencing:
scope_selector
scope_selector = Ident ;
Items referencing scope_selector:
scope_selector is referencing:
legs
legs = Ident ;
Items referencing legs:
legs is referencing:
give_map
give_map = Ident ;
Items referencing give_map:
give_map is referencing:
want_map
want_map = Ident ;
Items referencing want_map:
want_map is referencing:
payload
payload = String | Ident ;
Items referencing payload:
payload is referencing:
utterance
utterance = String ;
Items referencing utterance:
utterance is referencing:
quantity
quantity = Number ;
Items referencing quantity:
quantity is referencing:
input_quantity
input_quantity = Number ;
Items referencing input_quantity:
input_quantity is referencing:
minimum_output_quantity
minimum_output_quantity = Number ;
Items referencing minimum_output_quantity:
minimum_output_quantity is referencing:
price
price = Number ;
Items referencing price:
price is referencing:
limit_price
limit_price = Number ;
Items referencing limit_price:
limit_price is referencing:
baseline_value
baseline_value = Number ;
Items referencing baseline_value:
baseline_value is referencing:
stance_value
stance_value = Number ;
Items referencing stance_value:
stance_value is referencing:
new_weight
new_weight = Number ;
Items referencing new_weight:
new_weight is referencing:
delta_weight
delta_weight = Number ;
Items referencing delta_weight:
delta_weight is referencing:
decay_lambda
decay_lambda = Number ;
Items referencing decay_lambda:
decay_lambda is referencing:
delivery_delay
delivery_delay = Number ;
Items referencing delivery_delay:
delivery_delay is referencing:
ttl
ttl = Number ;
Items referencing ttl:
ttl is referencing:
edge_kind
edge_kind = Ident ;
Items referencing edge_kind:
edge_kind is referencing:
subject_id
subject_id = Ident ;
Items referencing subject_id:
subject_id is referencing:
object_id
object_id = Ident ;
Items referencing object_id:
object_id is referencing:
---------- Lexical ----------
Ident
Ident = letter , { letter | digit | "_" } ;
Items referencing Ident:
- agent_id
- from_agent_id
- to_agent_id
- source_agent_id
- target_agent_id
- speaker_agent_id
- sender_agent_id
- subject_agent_id
- object_agent_id
- agent_a_id
- agent_b_id
- counterparty_agent_id
- proposer_agent_id
- taker_agent_id
- maker_agent_id
- actor_agent_id
- observer_agent_id
- proposal_id
- order_id
- venue_id
- channel
- visibility
- audience
- token_id
- token_a_id
- token_b_id
- input_token_id
- output_token_id
- relation_polarity
- endorsement_polarity
- signal_polarity
- stance_label
- mode
- side
- scope_selector
- legs
- give_map
- want_map
- payload
- edge_kind
- subject_id
- object_id
Ident is referencing:
Number
Number = [ "-" ] , { digit }- , [ "." , { digit }- ] ;
Items referencing Number:
- quantity
- input_quantity
- minimum_output_quantity
- price
- limit_price
- baseline_value
- stance_value
- new_weight
- delta_weight
- decay_lambda
- delivery_delay
- ttl
Number is referencing:
String
String = '"' , { string_character } , '"' ;
Items referencing String:
String is referencing:
string_character
string_character = string_unescaped | escape_sequence ;
Items referencing string_character:
string_character is referencing:
string_unescaped
string_unescaped = ? any character except double-quote and backslash ? ;
Items referencing string_unescaped:
escape_sequence
escape_sequence = "\\" , ( '"' | "\\" | "n" | "t" ) ;
Items referencing escape_sequence:
character
character = ? any Unicode scalar value ? ;
letter
letter
= "A" | "B" | "C" | "D" | "E" | "F" | "G"
| "H" | "I" | "J" | "K" | "L" | "M" | "N"
| "O" | "P" | "Q" | "R" | "S" | "T" | "U"
| "V" | "W" | "X" | "Y" | "Z" | "a" | "b"
| "c" | "d" | "e" | "f" | "g" | "h" | "i"
| "j" | "k" | "l" | "m" | "n" | "o" | "p"
| "q" | "r" | "s" | "t" | "u" | "v" | "w"
| "x" | "y" | "z" | "_"
;
Items referencing letter:
digit
digit
= "0" | "1" | "2" | "3" | "4" | "5" | "6"
| "7" | "8" | "9"
;
Items referencing digit: