diff --git a/.gitignore b/.gitignore
index 48bfa15..f84e11c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,4 @@ docker-compose.yml
jats
paper
logs
+typings
diff --git a/NOTICE b/NOTICE
index a5ee11a..9711435 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,4 +1,4 @@
-Scenario Runner for Autoware
+CAWSR - Scenario Runner for Autoware
Copyright 2025 University of Sheffield
This product includes software based on Scenario Runner by CARLA.
diff --git a/README.md b/README.md
index c49a958..d9e8dd3 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ Setup access to the [**Github container registry**](https://docs.github.com/en/p
Once you have been granted access, pull the following images:
```
-docker pull carlasim/carla:0.9.15
+docker pull ghcr.io/intelligent-testing-lab/carla:0.9.15
docker pull ghcr.io/intelligent-testing-lab/autoware-scenario-runner:latest
docker pull ghcr.io/intelligent-testing-lab/autoware:latest
```
@@ -177,16 +177,69 @@ License
Core CAWSR logic and Autoware integration.
* **Copyright:** © 2025 University of Sheffield
* **License File:** [`LICENSE Sheffield`](./LICENSE%20Sheffield)
+
+Associated Files / Directories:
+
+- srunner/scenarioconfigs/environment_configuration.py
+- srunner/scenario_decoder/json_to_xml_files.py
+- srunner/scenarioconfigs/carla_config.py
+- srunner/autoagents/autoware_agent.py
+- srunner/autoagents/autoware_nodes/
+- srunner/tools/results_manager.py
+- srunner/autoagents/agent_state/
+- srunner/objects/
+- Dockerfile
+- cawsr.py
+- srunner/tools/metrics_collector.py
+- srunner/tools/CARLA_manager.py
+- srunner/tools/log.py
+- srunner/scenariomanager/scenario_manager.py (modified)
+- srunner/autoagents/autoware_carla_interface/carla_autoware.py (modified)
+- srunner/autoagents/autoware_carla_interface/carla_ros.py (modified)
+- docker/autoware_msgs.tar.xz/src/autoware_cawsr_msgs
+
+
### 2. Scenario Runner (CARLA) (MIT)
Scenario execution engine for CARLA.
* **Copyright:** © Intel Corporation / CARLA Team
* **License File:** [`LICENSE Carla`](./LICENSE%20Carla)
+
+Associated Files / Directories (excluding files under CAWSR license):
+
+- srunner/scenarios/
+- srunner/examples/
+- srunner/scenarioconfigs/route_scenario_configuration.py
+- srunner/scenarioconfigs/scenario_configuration.py
+- srunner/scenariomanager/actorcontrols
+- srunner/scenariomanager/scenarioatomics
+- srunner/scenariomanager/lights_sim.py
+- srunner/scenariomanager/results_writer.py
+- srunner/scenariomanager/timer.py
+- srunner/scenariomanager/traffic_events.py
+- srunner/scenariomanager/watchdog.py
+- srunner/scenariomanager/weather_sim.py
+- srunner/scenariomanager/carla_data_provider.py
+- srunner/tools/background_manager.py
+- srunner/tools/py_trees_port.py
+- srunner/tools/route_manipulation.py
+- srunner/tools/route_parser.py
+- srunner/tools/scenario_parser.py
+- srunner/tools/scenario_helper.py
+
+
### 3. Autoware Carla Interface (Apache 2.0)
Autoware communication bridge.
**Apache License 2.0**.
* **Copyright:** © The Autoware Foundation / Tier IV, Inc. / AutoCore / Leo Drive
* **License File:** [`LICENSE-Autoware`](./LICENSE%20Autoware)
+
+Associated Files / Directories (excluding files under CAWSR license):
+
+- srunner/autoagents/autoware_carla_bridge/
+- docker/autoware_msgs.tar.xz/src
+
+
**Notices:** See [`NOTICE`](./NOTICE) for the full list of required attributions.
diff --git a/algorithms/Simulated_Annealing.py b/algorithms/Simulated_Annealing.py
deleted file mode 100644
index 8e21bf2..0000000
--- a/algorithms/Simulated_Annealing.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2025 University of Sheffield
-#
-# This work is licensed under the terms of the MIT license.
-# For a copy, see .
-
-from BasicAlgorithm import BasicAlgorithm
-import lanelet2
-import random
-import math
-
-from math import sqrt, pow
-
-
-class Simulated_Annealing(BasicAlgorithm):
- def __init__(self, args: dict) -> None:
- super(BasicAlgorithm).__init__(args)
- self.temperature = args["temperature"]
- self.min_temperature = args["min_temperature"]
- self.temperature_step = args["temperature_step"]
-
- self.radius = args["radius"]
- self.lanelet_path = args["lanelet_path"]
-
- self.prev_ds = None
- self.prev_waypoints = None
- self.waypoints_index = 0
-
- def _scenario_callback(
- self, scenario_definition: dict, driving_score: float
- ) -> dict:
- waypoints = scenario_definition["routes"][0]["waypoints"]
-
- if self.temperature <= self.min_temperature:
- print("Reached min temperature, no more iterations needed")
- print("=========final waypoint values are=========")
- print(self.prev_waypoints)
- print("=========final driving score===============")
- print(self.prev_ds)
- print("===========================================")
- # solution is prev_ds and prev_waypoints
- return
-
- if self.prev_ds is not None:
- ds_diff = self.prev_ds - driving_score # we want a worse driving score
- ds_diff = driving_score - self.prev_ds
- if ds_diff > 0:
- self.prev_waypoints = waypoints[self.waypoint_index]
- self.prev_ds = driving_score
- elif math.exp(ds_diff / self.temperature) > random.randint(0, 1):
- self.prev_waypoints = waypoints[self.waypoint_index]
- self.prev_ds = driving_score
-
- self.temperature -= self.temperature_step
- else:
- self.prev_ds = driving_score
- self.prev_waypoints = waypoints[self.waypoint_index]
-
- new_point = self.__find_new_neighbour_point(waypoints[self.waypoints_index])
- waypoints[self.waypoints_index] = new_point
-
- if self.waypoint_index + 1 > len(waypoints):
- self.waypoint_index = 0
- else:
- self.waypoint_index += 1
-
- return scenario_definition
-
- def __find_new_neighbour_point(self, current_point: dict) -> dict:
- current_point_ = (
- current_point["position"]["x"],
- current_point["position"]["y"],
- )
-
- all_points = self.__get_all_lanelet_points()
- self.visited_points.add(current_point_)
- all_points.difference(self.visited_points)
-
- points_in_radius = []
- for point in all_points:
- if (
- self.radius == -1
- or self.__euclidian_distance(point, current_point_) <= self.radius
- ):
- points_in_radius.append(point)
-
- if len(points_in_radius) == 0:
- random_point = random.choice(list(all_points))
- else:
- random_point = random.choice(points_in_radius)
-
- return {"positions": {"x": random_point[0], "y": random_point[1]}}
-
- def __get_all_lanelet_points(self) -> set[tuple[int, int]]:
- map = lanelet2.io.load(self.lanelet_path, lanelet2.io.Origin(0, 0))
- lanelets = map.laneletLayer
-
- centerline_points = []
- for lanelet in list(lanelets):
- for points in lanelet.centerline:
- centerline_points += (points.x, points.y)
-
- return set(centerline_points)
-
- def __euclidian_distance(self, point1, point2) -> float:
- return sqrt(pow(point1.x - point2.x, 2) + pow(point2.y - point1.x, 2))
diff --git a/algorithms/basic_algorithm.py b/algorithms/basic_algorithm.py
deleted file mode 100644
index 96ffb36..0000000
--- a/algorithms/basic_algorithm.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2025 University of Sheffield
-#
-# This work is licensed under the terms of the MIT license.
-# For a copy, see .
-
-import numpy as np
-import carla
-
-from srunner.tools import route_manipulation
-
-
-class BasicAlgorithm(object):
- def __init__(self, args: dict) -> None:
- self._args = args
-
- self._rng = None
-
- def _scenario_callback(
- self, scenario_definition: dict, driving_score: float
- ) -> dict:
- """
- Purely virtual method to be implemented by the user. Receives a
- scenario definition, results of a scenario run and the scenario critera.
-
- """
- raise NotImplementedError("This function should be implemented by the user")
-
- def _to_carla(self, point: np.ndarray) -> carla.Location:
- return carla.Location(point[0], point[1], 0.0)
-
- def valid_route(self, route) -> bool:
- carla_route = list(map(self._to_carla, route))
-
- gps_route, route = route_manipulation.interpolate_trajectory(carla_route)
- return not ((len(gps_route) == 1) and (len(route) == 1))
-
- def _update_generator(self, seed: int) -> None:
- """Update the random seeded BitGenerator with a new seed"""
- self._rng = np.random.default_rng(seed)
diff --git a/algorithms/hill_climb.py b/algorithms/hill_climb.py
deleted file mode 100644
index 824b43c..0000000
--- a/algorithms/hill_climb.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2025 University of Sheffield
-#
-# This work is licensed under the terms of the MIT license.
-# For a copy, see .
-
-from basic_algorithm import BasicAlgorithm
-import lanelet2
-import random
-import json
-
-from math import sqrt, pow
-
-
-class HillClimb(BasicAlgorithm):
- def __init__(self, args: dict) -> None:
- super(BasicAlgorithm).__init__()
- self.radius = args["radius"]
- self.lanelet_path = args["lanelet_path"]
- self.visited_points: set[tuple[int, int]] = set()
-
- self.prev_ds = None
- self.prev_waypoints = None
- self.waypoint_index = 0
-
- def _scenario_callback(
- self, scenario_definition: dict, driving_score: float
- ) -> dict:
- waypoints = scenario_definition["routes"][0]["route"]["waypoints"]
-
- if self.prev_ds is not None: # not first run
- if not driving_score >= self.prev_ds: # worse DS
- if self.waypoint_index == 0: # if spawn point
- previouse_index = len(waypoints) - 1 # pick last point
- else:
- previouse_index = self.waypoint_index - 1 # else pick previous
- waypoints[previouse_index] = self.prev_waypoints
- else:
- self.prev_ds = driving_score
- self.prev_waypoints = waypoints[self.waypoint_index]
-
- new_point = self.__find_new_neighbour_point(waypoints[self.waypoint_index])
-
- waypoints[self.waypoint_index] = new_point
-
- self.prev_waypoints = waypoints[self.waypoint_index]
-
- if self.waypoint_index + 1 >= len(waypoints):
- self.waypoint_index = 0
- else:
- self.waypoint_index += 1
-
- return scenario_definition
-
- def __find_new_neighbour_point(self, current_point: dict) -> dict:
- current_point_ = (
- current_point["position"]["x"],
- current_point["position"]["y"],
- )
-
- all_points = (
- self.__get_all_lanelet_points()
- ) # get all lanelet 2 points (centerline)
- self.visited_points.add(current_point_)
- all_points.difference(self.visited_points) # find unvisited points
-
- points_in_radius = []
- for point in all_points:
- if (
- self.radius == -1
- or self.__euclidian_distance(point, current_point_) <= self.radius
- ):
- points_in_radius.append(point)
-
- if len(points_in_radius) == 0:
- random_point = random.choice(list(all_points))
- else:
- random_point = random.choice(points_in_radius)
-
- return {"position": {"x": random_point[0], "y": random_point[1], "z": 0.0}}
-
- def __get_all_lanelet_points(self) -> set[tuple[int, int]]:
- map = lanelet2.io.load(self.lanelet_path, lanelet2.io.Origin(0, 0))
- lanelets = map.laneletLayer
-
- centerline_points = []
- for lanelet in list(lanelets):
- for points in lanelet.centerline:
- centerline_points.append((points.x, points.y))
-
- return set(centerline_points)
-
- def __euclidian_distance(self, point1, point2) -> float:
- return sqrt(pow(point1[0] - point2[0], 2) + pow(point2[1] - point1[1], 2))
-
-
-def main(): # debug
- scenario = "/autoware_scenario_runner/example_scenario_default.json"
-
- json_scenario = None
- with open(scenario, "r") as f:
- json_scenario = json.load(f)
-
- radius = 10
- lanelet2_path = "/autoware_scenario_runner/algorithms/resources/Town01.osm"
- args = {"radius": radius, "lanelet_path": lanelet2_path}
-
- climb = HillClimb(args)
- climb._scenario_callback(json_scenario, 0.0)
diff --git a/algorithms/random_search.py b/algorithms/random_search.py
deleted file mode 100644
index 4eff18a..0000000
--- a/algorithms/random_search.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2025 University of Sheffield
-#
-# This work is licensed under the terms of the MIT license.
-# For a copy, see .
-
-from basic_algorithm import BasicAlgorithm
-
-import lanelet2
-import numpy as np
-
-
-class RandomSearch(BasicAlgorithm):
- def __init__(self, args: dict) -> None:
- self._args = args
-
- self.lanelet2 = args["lanelet2"]
- self.prev_ds = 0
- self.all_points = self.__get_all_lanelet_points() # stored in memory
-
- def _scenario_callback(
- self, scenario_definition: dict, driving_score: float
- ) -> dict:
- valid = False
- spawn = None
- goalpose = None
-
- while not valid:
- spawn = self._rng.choice(self.all_points)
- goalpose = self._rng.choice(self.all_points)
-
- valid = self.valid_route([spawn, goalpose])
-
- scenario_definition["routes"][0]["route"]["waypoints"] = [
- self._np_to_json(spawn),
- self._np_to_json(goalpose),
- ]
- return scenario_definition
-
- def _update_generator(self, seed: int) -> None:
- self._rng = np.random.default_rng(seed)
-
- def _np_to_json(self, p1: np.ndarray) -> dict:
- return {"position": {"x": p1[0], "y": p1[1], "z": 0.0}}
-
- def __get_all_lanelet_points(self) -> np.ndarray:
- laneletmap_ = lanelet2.io.load(self.lanelet2, lanelet2.io.Origin(0, 0))
- self.laneletmap_ = laneletmap_
-
- centerline_points = []
- for lanelet in list(self.laneletmap_.laneletLayer):
- for points in lanelet.centerline:
- centerline_points.append(np.asarray([points.x, points.y]))
-
- return np.asarray(centerline_points) # convert to numpy array
-
- def _not_same_lane_check(self, p1, p2):
- p1 = lanelet2.core.BasicPoint2d(p1[0], p1[1])
- p2 = lanelet2.core.BasicPoint2d(p2[0], p2[1])
-
- lanelets = [
- lanelet2.geometry.findNearest(self.laneletmap_.laneletLayer, p1, 1),
- lanelet2.geometry.findNearest(self.laneletmap_.laneletLayer, p2, 1),
- ]
-
- lanelet_ids = [
- {ll.id for dist, ll in lanelets[0]},
- {ll.id for dist, ll in lanelets[1]},
- ]
- common_lanes = lanelet_ids[0].intersection(lanelet_ids[1])
- return not common_lanes
-
- def _dist(self, p1: np.ndarray, p2: np.ndarray) -> np.floating:
- return np.linalg.norm(p1 - p2)
diff --git a/algorithms/resources/Town01.osm b/algorithms/resources/Town01.osm
deleted file mode 100644
index 1b4ce84..0000000
--- a/algorithms/resources/Town01.osm
+++ /dev/null
@@ -1,12651 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/srunner/autoagents/autonomous_agent.py b/srunner/autoagents/autonomous_agent.py
deleted file mode 100644
index e081a44..0000000
--- a/srunner/autoagents/autonomous_agent.py
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env python
-
-# This work is licensed under the terms of the MIT license.
-# For a copy, see .
-
-"""
-This module provides the base class for all autonomous agents
-"""
-
-from __future__ import print_function
-
-
-from srunner.tools.route_manipulation import downsample_route
-
-
-class AutonomousAgent(object):
- """
- Autonomous agent base class. All user agents have to be derived from this class
- """
-
- def __init__(self, path_to_conf_file):
- # current global plans to reach a destination
- self._global_plan = None
- self._global_plan_world_coord = None
-
- # this data structure will contain all sensor data
- # self.sensor_interface = SensorInterface()
-
- # agent's initialization
- self.setup(path_to_conf_file)
-
- def setup(self, path_to_conf_file):
- """
- Initialize everything needed by your agent and set the track attribute to the right type:
- """
- pass
-
- def sensors(self): # pylint: disable=no-self-use
- """
- Define the sensor suite required by the agent
-
- :return: a list containing the required sensors in the following format:
-
- [
- {'type': 'sensor.camera.rgb', 'x': 0.7, 'y': -0.4, 'z': 1.60, 'roll': 0.0, 'pitch': 0.0, 'yaw': 0.0,
- 'width': 300, 'height': 200, 'fov': 100, 'id': 'Left'},
-
- {'type': 'sensor.camera.rgb', 'x': 0.7, 'y': 0.4, 'z': 1.60, 'roll': 0.0, 'pitch': 0.0, 'yaw': 0.0,
- 'width': 300, 'height': 200, 'fov': 100, 'id': 'Right'},
-
- {'type': 'sensor.lidar.ray_cast', 'x': 0.7, 'y': 0.0, 'z': 1.60, 'yaw': 0.0, 'pitch': 0.0, 'roll': 0.0,
- 'id': 'LIDAR'}
- ]
-
- """
- sensors = []
-
- return sensors
-
- def run_step_init(self):
- """
- Override
- Initialisation loop / parameters
-
- :return: status (ready or not)
- """
- return
-
- def run_step(self):
- """
- Override
- Execute one step of navigation.
- :return: control
- """
- return
-
- def destroy(self):
- """
- Destroy (clean-up) the agent
- :return:
- """
- pass
-
- def __call__(self):
- """
- Execute the agent call, e.g. agent()
- Returns the next vehicle controls
- """
- self.run_step()
-
- def set_global_plan(self, global_plan_gps, global_plan_world_coord):
- """
- Set the plan (route) for the agent
- """
-
- ds_ids = downsample_route(global_plan_world_coord, 1)
- self._global_plan_world_coord = [
- (global_plan_world_coord[x][0], global_plan_world_coord[x][1])
- for x in ds_ids
- ]
- self._global_plan = [global_plan_gps[x] for x in ds_ids]
diff --git a/srunner/openscenario/0.9.x/OpenSCENARIO_Catalog.xsd b/srunner/openscenario/0.9.x/OpenSCENARIO_Catalog.xsd
deleted file mode 100644
index 2ba333c..0000000
--- a/srunner/openscenario/0.9.x/OpenSCENARIO_Catalog.xsd
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
- XML Schema Definition for OpenSCENARIO Catalog XML files - Version Draft 0.9.1, (c)2017 by VIRES Simulationstechnologie GmbH, Germany
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/srunner/openscenario/0.9.x/OpenSCENARIO_TypeDefs.xsd b/srunner/openscenario/0.9.x/OpenSCENARIO_TypeDefs.xsd
deleted file mode 100644
index 931d8cf..0000000
--- a/srunner/openscenario/0.9.x/OpenSCENARIO_TypeDefs.xsd
+++ /dev/null
@@ -1,1457 +0,0 @@
-
-
-
-
-
-
-
- XML Schema Type Definitions for OpenSCENARIO XML files - Version Draft 0.9.1, (c)2017 by VIRES Simulationstechnologie GmbH, Germany
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/srunner/openscenario/0.9.x/OpenSCENARIO_v0.9.1.xsd b/srunner/openscenario/0.9.x/OpenSCENARIO_v0.9.1.xsd
deleted file mode 100644
index d892872..0000000
--- a/srunner/openscenario/0.9.x/OpenSCENARIO_v0.9.1.xsd
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
-
-
-
-
-
-
- XML Schema Definition for OpenSCENARIO XML files - Version 0.9.1, (c)2017 by VIRES Simulationstechnologie GmbH, Germany
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/srunner/openscenario/0.9.x/migration0_9_1to1_0.xslt b/srunner/openscenario/0.9.x/migration0_9_1to1_0.xslt
deleted file mode 100644
index 54dbc7a..0000000
--- a/srunner/openscenario/0.9.x/migration0_9_1to1_0.xslt
+++ /dev/null
@@ -1,3679 +0,0 @@
-
-
-
-
-
-
-
- longitudinal
- lateral
- cartesianDistance
-
-
-
-
-
- greaterThan
- lessThan
- equalTo
-
-
-
-
-
- none
- railing
- barrier
-
-
-
-
-
- endTransition
- stopTransition
- completeState
-
-
-
-
-
- risingOrFalling
- falling
- rising
-
-
-
-
-
- position
- follow
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Review catalogs since driver catalog and pedestrian catalogs are merged into controller catalog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: OSCTrajectory is restructured and connot be automatically migrated. Review XML
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Review catalogs since driver catalog and pedestrian catalogs are merged into controller catalog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Review catalogs since driver catalog and pedestrian catalogs are merged into controller catalog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Jam is desupported: removed during migration
-
-
-
-
- WARNING: Script is desupported: removed during migration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: OSCPrivateAction.Meeting is desupported: removed during migration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ERROR: Act: Cancel and End are both defined: Version 1.0 only supports Stop Trigger. Invalid XML is produced and needs to be revisited.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Storyboard.Story.Act.Sequence.Actors.ByCondition: "anyEntity" is de-supported for version 1.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: OSCPrivateAction.Longitudinal.Speed or OSCPrivateAction.Lateral.LaneChange.Dynamics: Distance, time, rate must exclude each other in the original file. This results in a invalid output.
-
-
-
-
- WARNING: OSCPrivateAction.Longitudinal.Speed or OSCPrivateAction.Lateral.LaneChange.Dynamics: There must be at least one of time, rate or distance in the original file. This results in a invalid output.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Review catalogs since driver catalog and pedestrian catalogs are merged into controller catalog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: Event.priority: 'following' is desupported: removed during migration. This results in unvalifd XML code.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: OSCPrivateAction.Meeting is desupported: removed during migration: This may result in unvalid XML
-
-
-
-
- WARNING: Jam is desupported: removed during migration: This may result in unvalid XML
-
-
-
-
- WARNING: Script is desupported: removed during migration: This may result in unvalid XML
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Migration: Insert Controller here
-
-
-
- ERROR: OSCTrafficDefinition.DriverDistribution.Driver cannot be migrated automatically and will result in unvalid XML output.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- WARNING: OSCTrajectory.Vertex: OSCTrajectory is restructured and connot be automatically migrated. Review XML.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/srunner/openscenario/OpenSCENARIO.xsd b/srunner/openscenario/OpenSCENARIO.xsd
deleted file mode 100644
index 9a96219..0000000
--- a/srunner/openscenario/OpenSCENARIO.xsd
+++ /dev/null
@@ -1,1506 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/srunner/osc2/README.md b/srunner/osc2/README.md
deleted file mode 100644
index d8a3cc3..0000000
--- a/srunner/osc2/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Introduction to modules
-## Brief introduction of Antlr4
-Antlr4 is a powerful tool for generating grammar parsers.
-Given the grammar of a language, Antlr4 can generate a parser for that language and automatically build a parse tree.
-Additional functionality can be achieved by traversing this tree and triggering callback functions at desired structures.
-To this end, Antlr4 provides autogenerated parse tree walkers: listeners or visitors.
-In addition, Antlr4 provides error reporting and error handling functionality,
-and error messages can be customized by implementing the interfaces provided by Antlr4.
-For more information, please refer to the [Antlr website](https://www.antlr.org/).
-
-### Build the AST
-```
-antlr4 -Dlanguage=Python3 Example.g4
-```
-After executing this command, multiple files will be generated, and it is necessary to understand the following files:
-- ExampleParser.py: This file contains a syntax parser for recognizing 'Example syntax'.
-- ExampleListener.py: This file contains a traverser of the syntax analysis tree in the form of a listener - the ExampleListener class. When using a listener to traverse the syntax analysis tree, the callback method of the listener will be triggered. This class defines a series of callback methods and provides default empty implementations for these methods. When using it, the user only needs to override the methods needed.
-- Example.tokens: Antlr will define a corresponding number for each lexical symbol defined in the grammar file, and this file is used to store the correspondence between them.
-
-### Traversal the AST
-Antlr provides two mechanisms to access the syntax parse tree, namely listener or visitor. The biggest difference between the two is that the listener method will be automatically called during the process of accessing the sub-nodes of the syntax parse tree, while the visitor method must explicitly call the visit method to access the sub-nodes, otherwise the subtree will not be visited.
-
-#### Listener
-The ExampleListener class corresponds to the listener generated by Antlr4. When constructing their own visitor, users need to inherit this class and implement the required methods. The listener will generate an enterxxx() method and an exitxxx() method for each sub-node. When entering a node, the enterxxx() method will be called, and when all the child nodes of the node have been traversed and exited, the corresponding exitxxx() method of the node will be called.
-
-#### Visitor
-Antlr4 generates a listener by default, and specifies the generation of a visitor by adding the -visitor parameter.
-```
-antlr4 -Dlanguage=Python3 -visitor Example.g4
-```
-
-## 2. error_manager module
-Antlr4 can check and report lexical and syntax errors in the input file, and by default sends error messages to standard error. To facilitate locating and resolving errors, the project customizes error messages.
-- Error monitoring: The content and output target of the message can be changed by implementing the ErrorListener interface. The project implements the ErrorListener interface and builds its own error listener to standardize error messages.
-- Output error messages: Use Python's logging module to output error messages.
-
-To make the custom error handling module effective, it is necessary to remove the default error listener and add the custom error listener before parsing the input file.
-
-```
-lexer/parser.removeErrorListener()
-lexer/parser.addErrorListener(OscErrorListener)
-```
-
-## III. ast_manager module
-The ast_manager module is used to create abstract syntax trees, including defining ast nodes and building asts.
-- Definition of ast nodes: The Node class is the base class for all ast nodes, defining 1) the position information of the corresponding source code; 2) the scope of the node; and 3) child nodes. All other nodes inherit directly or indirectly from this node.
-- Building asts: The ast is constructed by traversing the syntax parse tree generated by Antlr4. The listener is used to traverse the syntax parse tree, create ast nodes in the callback function, and add nodes to the abstract syntax tree.
-
-## IV. symbol_manager module
-The symbol management module is used to record the definition of symbols and track their usage, ensuring that symbols are defined before they are used and used within their scope.
-- Symbol class definition: The Symbol class is the base class for all symbols, defining basic information about symbols such as name and category. Other symbol classes extend the Symbol class.
-- Scope: By traversing the syntax parsing tree, the symbol scope is created as a tree structure, on which the inheritance and extension features of OpenScenario 2.0 are implemented.
\ No newline at end of file
diff --git a/srunner/osc2/README_zh.md b/srunner/osc2/README_zh.md
deleted file mode 100644
index 388ab50..0000000
--- a/srunner/osc2/README_zh.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# 模块介绍
-
-## 一、Antlr4简介
-Antlr4是一款强大的语法分析器生成工具。给出一门预言的语法,Antlr4能够为该语法生成语法分析器,并自动建立语法分析树。通过遍历此树,并在所需的结构处触发回调函数来实现更多功能。为此,Antlr4提供了自动生成语法分析树遍历器:监听器(listener)或者访问器(visitor)。此外,Antlr4还提供了错误报告和错误功能,并且可以通过实现Antlr4提供的接口来定制错误消息。更多介绍请参考[Antlr官网](https://www.antlr.org/)
-
-### 构建语法分析树
-
-```
-antlr4 -Dlanguage=Python3 Example.g4
-```
-执行此命令后,会生成多个文件,需要了解以下几个文件
-
-- ExampleParser.py:该文件包含一个语法分析器,用于识别‘Example语法’。
-- ExampleListener.py:该文件包含了一个以监听器方式遍历语法分析树的遍历器——ExampleListener类。使用监听器遍历语法分析树时,会触发该监听器的回调方法。该类定义了一系列的回调方法,并为这些方法提供默认的空实现,使用时用户只需对需要的方法进行覆盖。
-- Example.tokens:Antlr会为语法文件中定义的每个词法符号定义一个对应的数字,该文件用于存储它们之间的对应关系。
-
-### 遍历语法分析树
-Antlr提供了两种机制来访问语法解析树,分别是监听器(listener)或者访问器(visitor)。两者最大的区别在于,监听器方法会在访问语法解析树子结点的过程中被自动调用,而访问器方法必须显示调用visit方法来访问子结点,如果没有调用那么子树将不会被访问。
-
-#### listener
-
-ExampleListener类对应Antlr4生成的listener,用户构造自己的访问器时需要继承该类,实现所需的方法。listener会为每个子结点生成一个enterxxx()方法和exitxxx()方法,进入一个结点时会调用enterxxx()方法,当遍历完该结点的所有子节点,从结点退出时,会调用该结点对应的exitxxx()方法。
-
-
-#### visitor
-Antlr4默认生成listener,通过添加-visitor参数指定生成visitor。
-
-```
-antlr4 -Dlanguage=Python3 -visitor Example.g4
-```
-
-
-## 二、error_manager模块
-Antlr4能够检查并报告输入文件中的词法和语法错误,默认情况下将错误信息送至standard error。为了方便定位和解决错误,项目对错误消息进行定制。
-- 监听错误:可以通过实现ErrorListener接口来改变消息的内容和输出目标。项目实现了ErrorListener接口,构建自己的错误监听器,从而将错误信息标准化。下图为项目对ANTLR4错误监听器的扩展
-
-- 输出错误信息:使用python的logging模块输出错误信息。
-
-
-为使自定义的错误管理模块生效,需要在对输入文件进行解析之前,将默认的错误监听器移除,增加自定义的错误监听器。
-
-```
-lexer/parser.removeErrorListener()
-lexer/parser.addErrorListener(OscErrorListener)
-```
-
-## 三、ast_manager模块
-ast_manager模块用于创建抽象语法树。包括ast结点定义和ast构建。
-- ast结点定义:Node类是所有ast结点的基类,该类定义了1)结点对应的源码的位置信息;2)结点所在的作用域;3)子结点。其它结点均直接或间接继承该结点。
-- ast构建:通过遍历Antlr4生成的语法解析树来构建ast。使用listener遍历语法解析树,在回调函数中创建ast结点,并将结点添加到抽象语法树上。
-
-## 四、symbol_manager模块
-符号管理模块来记录符号的定义和追踪符号的使用情况,确保符号在使用之前被定义,并且在符号的作用域之内被使用。
-- 符号类定义:Symbol类是所有符号的基类,该类定义了符号的基本信息,例如名称和类别,其它符号类在Symbol类的基础上进行扩展。
-- 作用域:通过遍历语法解析树,将符号作用域创建为树的结构,在此基础上实现OpenScenario2.0的继承和扩展特性。
-
-
diff --git a/srunner/osc2/ast_manager/__init__ .py b/srunner/osc2/ast_manager/__init__ .py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2/ast_manager/ast_builder.py b/srunner/osc2/ast_manager/ast_builder.py
deleted file mode 100644
index f2a24bb..0000000
--- a/srunner/osc2/ast_manager/ast_builder.py
+++ /dev/null
@@ -1,2627 +0,0 @@
-import copy
-from pydoc import resolve
-
-import srunner.osc2.ast_manager.ast_node as ast_node
-from srunner.osc2.osc2_parser.OpenSCENARIO2Listener import OpenSCENARIO2Listener
-from srunner.osc2.osc2_parser.OpenSCENARIO2Parser import OpenSCENARIO2Parser
-from srunner.osc2.symbol_manager.action_symbol import ActionSymbol
-from srunner.osc2.symbol_manager.actor_symbol import ActorSymbol
-from srunner.osc2.symbol_manager.argument_symbol import *
-from srunner.osc2.symbol_manager.constraint_decl_scope import *
-from srunner.osc2.symbol_manager.do_directive_scope import *
-from srunner.osc2.symbol_manager.doMember_symbol import DoMemberSymbol
-from srunner.osc2.symbol_manager.enum_symbol import *
-from srunner.osc2.symbol_manager.event_symbol import *
-from srunner.osc2.symbol_manager.global_scope import GlobalScope
-from srunner.osc2.symbol_manager.inherits_condition_symbol import *
-from srunner.osc2.symbol_manager.method_symbol import MethodSymbol
-from srunner.osc2.symbol_manager.modifier_symbol import *
-from srunner.osc2.symbol_manager.parameter_symbol import ParameterSymbol
-from srunner.osc2.symbol_manager.physical_type_symbol import PhysicalTypeSymbol
-from srunner.osc2.symbol_manager.qualifiedBehavior_symbol import QualifiedBehaviorSymbol
-from srunner.osc2.symbol_manager.scenario_symbol import ScenarioSymbol
-from srunner.osc2.symbol_manager.si_exponent_symbol import (
- SiBaseExponentListScope,
- SiExpSymbol,
-)
-from srunner.osc2.symbol_manager.struct_symbol import StructSymbol
-from srunner.osc2.symbol_manager.typed_symbol import *
-from srunner.osc2.symbol_manager.unit_symbol import UnitSymbol
-from srunner.osc2.symbol_manager.variable_symbol import VariableSymbol
-from srunner.osc2.symbol_manager.wait_symbol import *
-from srunner.osc2.utils.log_manager import *
-from srunner.osc2.utils.tools import *
-
-
-class ASTBuilder(OpenSCENARIO2Listener):
- def __init__(self):
- self.__global_scope = None # Global scope
- self.__current_scope = None # Current scope
- self.__node_stack = []
- self.__cur_node = None
- self.ast = None
-
- def get_ast(self):
- return self.ast
-
- def get_symbol(self):
- return self.__current_scope
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#osc_file.
- def enterOsc_file(self, ctx: OpenSCENARIO2Parser.Osc_fileContext):
- self.__global_scope = GlobalScope(None)
- self.__current_scope = self.__global_scope
-
- node = ast_node.CompilationUnit()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
- self.__node_stack.append(node)
- self.__cur_node = node
- self.ast = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#osc_file.
- def exitOsc_file(self, ctx: OpenSCENARIO2Parser.Osc_fileContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#preludeStatement.
- def enterPreludeStatement(self, ctx: OpenSCENARIO2Parser.PreludeStatementContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#preludeStatement.
- def exitPreludeStatement(self, ctx: OpenSCENARIO2Parser.PreludeStatementContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#importStatement.
- def enterImportStatement(self, ctx: OpenSCENARIO2Parser.ImportStatementContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#importStatement.
- def exitImportStatement(self, ctx: OpenSCENARIO2Parser.ImportStatementContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#importReference.
- def enterImportReference(self, ctx: OpenSCENARIO2Parser.ImportReferenceContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#importReference.
- def exitImportReference(self, ctx: OpenSCENARIO2Parser.ImportReferenceContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structuredIdentifier.
- def enterStructuredIdentifier(
- self, ctx: OpenSCENARIO2Parser.StructuredIdentifierContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structuredIdentifier.
- def exitStructuredIdentifier(
- self, ctx: OpenSCENARIO2Parser.StructuredIdentifierContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#oscDeclaration.
- def enterOscDeclaration(self, ctx: OpenSCENARIO2Parser.OscDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#oscDeclaration.
- def exitOscDeclaration(self, ctx: OpenSCENARIO2Parser.OscDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#physicalTypeDeclaration.
- def enterPhysicalTypeDeclaration(
- self, ctx: OpenSCENARIO2Parser.PhysicalTypeDeclarationContext
- ):
- self.__node_stack.append(self.__cur_node)
- type_name = ctx.physicalTypeName().getText()
-
- physical_type = PhysicalTypeSymbol(type_name, self.__current_scope)
- self.__current_scope.define(physical_type, ctx.start)
- self.__current_scope = physical_type
-
- node = ast_node.PhysicalTypeDeclaration(type_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#physicalTypeDeclaration.
- def exitPhysicalTypeDeclaration(
- self, ctx: OpenSCENARIO2Parser.PhysicalTypeDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#physicalTypeName.
- def enterPhysicalTypeName(self, ctx: OpenSCENARIO2Parser.PhysicalTypeNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#physicalTypeName.
- def exitPhysicalTypeName(self, ctx: OpenSCENARIO2Parser.PhysicalTypeNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#baseUnitSpecifier.
- def enterBaseUnitSpecifier(self, ctx: OpenSCENARIO2Parser.BaseUnitSpecifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#baseUnitSpecifier.
- def exitBaseUnitSpecifier(self, ctx: OpenSCENARIO2Parser.BaseUnitSpecifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIBaseUnitSpecifier.
- def enterSIBaseUnitSpecifier(
- self, ctx: OpenSCENARIO2Parser.SIBaseUnitSpecifierContext
- ):
- si_scope = SiBaseExponentListScope(self.__current_scope)
- self.__current_scope.define(si_scope, ctx.start)
- self.__current_scope = si_scope
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIBaseUnitSpecifier.
- def exitSIBaseUnitSpecifier(
- self, ctx: OpenSCENARIO2Parser.SIBaseUnitSpecifierContext
- ):
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#unitDeclaration.
- def enterUnitDeclaration(self, ctx: OpenSCENARIO2Parser.UnitDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- unit_name = ctx.Identifier().getText()
-
- physical_name = ctx.physicalTypeName().getText()
- # Find the physical quantity and define the unit of physical quantity
- if self.__current_scope.resolve(physical_name):
- pass
- else:
- msg = "PhysicalType: " + physical_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- unit = UnitSymbol(unit_name, self.__current_scope, physical_name)
- self.__current_scope.define(unit, ctx.start)
- self.__current_scope = unit
-
- node = ast_node.UnitDeclaration(unit_name, physical_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#unitDeclaration.
- def exitUnitDeclaration(self, ctx: OpenSCENARIO2Parser.UnitDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#unitSpecifier.
- def enterUnitSpecifier(self, ctx: OpenSCENARIO2Parser.UnitSpecifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#unitSpecifier.
- def exitUnitSpecifier(self, ctx: OpenSCENARIO2Parser.UnitSpecifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIUnitSpecifier.
- def enterSIUnitSpecifier(self, ctx: OpenSCENARIO2Parser.SIUnitSpecifierContext):
- si_scope = SiBaseExponentListScope(self.__current_scope)
- self.__current_scope.define(si_scope, ctx.start)
- self.__current_scope = si_scope
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIUnitSpecifier.
- def exitSIUnitSpecifier(self, ctx: OpenSCENARIO2Parser.SIUnitSpecifierContext):
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIBaseExponentList.
- def enterSIBaseExponentList(
- self, ctx: OpenSCENARIO2Parser.SIBaseExponentListContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIBaseExponentList.
- def exitSIBaseExponentList(
- self, ctx: OpenSCENARIO2Parser.SIBaseExponentListContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIBaseExponent.
- def enterSIBaseExponent(self, ctx: OpenSCENARIO2Parser.SIBaseExponentContext):
- self.__node_stack.append(self.__cur_node)
- unit_name = ctx.Identifier().getText()
- value = ctx.integerLiteral().getText()
-
- si_base_exponent = SiExpSymbol(unit_name, value, self.__current_scope)
- self.__current_scope.define(si_base_exponent, ctx.start)
- self.__current_scope = si_base_exponent
-
- node = ast_node.SIBaseExponent(unit_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIBaseExponent.
- def exitSIBaseExponent(self, ctx: OpenSCENARIO2Parser.SIBaseExponentContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIFactor.
- def enterSIFactor(self, ctx: OpenSCENARIO2Parser.SIFactorContext):
- self.__node_stack.append(self.__cur_node)
- unit_name = "factor"
- node = ast_node.SIBaseExponent(unit_name)
-
- factor_value = None
- if ctx.FloatLiteral():
- float_value = ctx.FloatLiteral().getText()
- value_node = ast_node.FloatLiteral(float_value)
- node.set_children(value_node)
- factor_value = float_value
- elif ctx.integerLiteral():
- factor_value = ctx.integerLiteral().getText()
-
- si_base_exponent = SiExpSymbol(unit_name, factor_value, self.__current_scope)
- self.__current_scope.define(si_base_exponent, ctx.start)
- self.__current_scope = si_base_exponent
-
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIFactor.
- def exitSIFactor(self, ctx: OpenSCENARIO2Parser.SIFactorContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIOffset.
- def enterSIOffset(self, ctx: OpenSCENARIO2Parser.SIOffsetContext):
- self.__node_stack.append(self.__cur_node)
- unit_name = "offset"
- node = ast_node.SIBaseExponent(unit_name)
-
- offset_value = None
- if ctx.FloatLiteral():
- float_value = ctx.FloatLiteral().getText()
- value_node = ast_node.FloatLiteral(float_value)
- value_node.set_loc(ctx.start.line, ctx.start.column)
- value_node.set_scope(self.__current_scope)
- node.set_children(value_node)
- offset_value = float_value
- elif ctx.integerLiteral():
- offset_value = ctx.integerLiteral().getText()
-
- si_base_exponent = SiExpSymbol(unit_name, offset_value, self.__current_scope)
- self.__current_scope.define(si_base_exponent, ctx.start)
- self.__current_scope = si_base_exponent
-
- if ctx.FloatLiteral():
- float_value = ctx.FloatLiteral().getText()
- string_symbol = FloatSymbol(self.__current_scope, float_value)
- self.__current_scope.define(string_symbol, ctx.start)
-
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIOffset.
- def exitSIOffset(self, ctx: OpenSCENARIO2Parser.SIOffsetContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumDeclaration.
- def enterEnumDeclaration(self, ctx: OpenSCENARIO2Parser.EnumDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- enum_name = ctx.enumName().getText()
-
- enum = EnumSymbol(enum_name, self.__current_scope)
- self.__current_scope.define(enum, ctx.start)
- self.__current_scope = enum
-
- node = ast_node.EnumDeclaration(enum_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumDeclaration.
- def exitEnumDeclaration(self, ctx: OpenSCENARIO2Parser.EnumDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumMemberDecl.
- def enterEnumMemberDecl(self, ctx: OpenSCENARIO2Parser.EnumMemberDeclContext):
- # Here, it is assumed that the value of enum member is monotonically increasing and the step is 1
- # TODO The above assumptions do not necessarily fit the design of OSC2
- self.__node_stack.append(self.__cur_node)
- member_name = ctx.enumMemberName().getText()
-
- member_value = None
- if ctx.enumMemberValue():
- if ctx.enumMemberValue().UintLiteral():
- member_value = int(ctx.enumMemberValue().UintLiteral().getText())
- elif ctx.enumMemberValue().HexUintLiteral():
- member_value = int(ctx.enumMemberValue().HexUintLiteral().getText(), 16)
- else:
- pass
-
- if member_value is None:
- member_value = self.__current_scope.last_index + 1
-
- enum_member = EnumMemberSymbol(member_name, self.__current_scope, member_value)
- self.__current_scope.define(enum_member, ctx.start)
-
- # The AST enumeration value is the value stored in the symbol table
- node = ast_node.EnumMemberDecl(member_name, member_value)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumMemberDecl.
- def exitEnumMemberDecl(self, ctx: OpenSCENARIO2Parser.EnumMemberDeclContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumMemberValue.
- def enterEnumMemberValue(self, ctx: OpenSCENARIO2Parser.EnumMemberValueContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumMemberValue.
- def exitEnumMemberValue(self, ctx: OpenSCENARIO2Parser.EnumMemberValueContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumName.
- def enterEnumName(self, ctx: OpenSCENARIO2Parser.EnumNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumName.
- def exitEnumName(self, ctx: OpenSCENARIO2Parser.EnumNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumMemberName.
- def enterEnumMemberName(self, ctx: OpenSCENARIO2Parser.EnumMemberNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumMemberName.
- def exitEnumMemberName(self, ctx: OpenSCENARIO2Parser.EnumMemberNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumValueReference.
- def enterEnumValueReference(
- self, ctx: OpenSCENARIO2Parser.EnumValueReferenceContext
- ):
- self.__node_stack.append(self.__cur_node)
- enum_name = None
- if ctx.enumName():
- enum_name = ctx.enumName().getText()
-
- # Search the scope of enum_name
- scope = self.__current_scope.resolve(enum_name)
- enum_member_name = ctx.enumMemberName().getText()
-
- if scope and isinstance(scope, EnumSymbol):
- if scope.symbols.get(enum_member_name):
- enum_value_reference = EnumValueRefSymbol(
- enum_name,
- enum_member_name,
- scope.symbols[enum_member_name].elems_index,
- scope,
- )
- self.__current_scope.define(enum_value_reference, ctx.start)
- else:
- msg = "Enum member " + enum_member_name + " not found!"
- LOG_ERROR(msg, ctx.start)
- else:
- msg = "Enum " + enum_name + " not found!"
- LOG_ERROR(msg, ctx.start)
-
- node = ast_node.EnumValueReference(enum_name, enum_member_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumValueReference.
- def exitEnumValueReference(
- self, ctx: OpenSCENARIO2Parser.EnumValueReferenceContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#inheritsCondition.
- def enterInheritsCondition(self, ctx: OpenSCENARIO2Parser.InheritsConditionContext):
- self.__node_stack.append(self.__cur_node)
- field_name = ctx.fieldName().getText()
-
- inherits_condition = InheritsConditionSymbol(field_name, self.__current_scope)
- self.__current_scope.define(inherits_condition, ctx.start)
- self.__current_scope = inherits_condition
-
- # Since there is no function to process bool_literal,
- # so we manually add a bool literal node to ast.
- bool_literal_node = None
- if ctx.BoolLiteral():
- bool_literal = ctx.BoolLiteral().getText()
- bool_literal_node = ast_node.BoolLiteral(bool_literal)
- bool_symbol = BoolSymbol(self.__current_scope, bool_literal)
- self.__current_scope.define(bool_symbol, ctx.start)
-
- node = ast_node.InheritsCondition(field_name, bool_literal_node)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#inheritsCondition.
- def exitInheritsCondition(self, ctx: OpenSCENARIO2Parser.InheritsConditionContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structDeclaration.
- def enterStructDeclaration(self, ctx: OpenSCENARIO2Parser.StructDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- struct_name = ctx.structName().getText()
-
- struct = StructSymbol(struct_name, self.__current_scope)
- self.__current_scope.define(struct, ctx.start)
- self.__current_scope = struct
-
- node = ast_node.StructDeclaration(struct_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structDeclaration.
- def exitStructDeclaration(self, ctx: OpenSCENARIO2Parser.StructDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structInherts.
- def enterStructInherts(self, ctx: OpenSCENARIO2Parser.StructInhertsContext):
- self.__node_stack.append(self.__cur_node)
- struct_name = ctx.structName().getText()
-
- # Finds the scope of the inherited actor_name
- scope = self.__current_scope.resolve(struct_name)
-
- if scope and isinstance(scope, StructSymbol):
- pass
- else:
- msg = "inherits " + struct_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- struct_inherts = StructInhertsSymbol(struct_name, self.__current_scope, scope)
- self.__current_scope.define(struct_inherts, ctx.start)
-
- node = ast_node.StructInherts(struct_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structInherts.
- def exitStructInherts(self, ctx: OpenSCENARIO2Parser.StructInhertsContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structMemberDecl.
- def enterStructMemberDecl(self, ctx: OpenSCENARIO2Parser.StructMemberDeclContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structMemberDecl.
- def exitStructMemberDecl(self, ctx: OpenSCENARIO2Parser.StructMemberDeclContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldName.
- def enterFieldName(self, ctx: OpenSCENARIO2Parser.FieldNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldName.
- def exitFieldName(self, ctx: OpenSCENARIO2Parser.FieldNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structName.
- def enterStructName(self, ctx: OpenSCENARIO2Parser.StructNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structName.
- def exitStructName(self, ctx: OpenSCENARIO2Parser.StructNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorDeclaration.
- def enterActorDeclaration(self, ctx: OpenSCENARIO2Parser.ActorDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- actor_name = ctx.actorName().getText()
-
- actor = ActorSymbol(actor_name, self.__current_scope)
- self.__current_scope.define(actor, ctx.start)
- self.__current_scope = actor
-
- node = ast_node.ActorDeclaration(actor_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorDeclaration.
- def exitActorDeclaration(self, ctx: OpenSCENARIO2Parser.ActorDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorInherts.
- def enterActorInherts(self, ctx: OpenSCENARIO2Parser.ActorInhertsContext):
- self.__node_stack.append(self.__cur_node)
- actor_name = ctx.actorName().getText()
-
- # Finds the scope of the inherited actor_name
- scope = self.__current_scope.resolve(actor_name)
-
- if scope and isinstance(scope, ActorSymbol):
- pass
- else:
- scope = None
- msg = "inherits " + actor_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- actor_inherits = ActorInhertsSymbol(actor_name, self.__current_scope, scope)
- self.__current_scope.define(actor_inherits, ctx.start)
-
- node = ast_node.ActorInherts(actor_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorInherts.
- def exitActorInherts(self, ctx: OpenSCENARIO2Parser.ActorInhertsContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorMemberDecl.
- def enterActorMemberDecl(self, ctx: OpenSCENARIO2Parser.ActorMemberDeclContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorMemberDecl.
- def exitActorMemberDecl(self, ctx: OpenSCENARIO2Parser.ActorMemberDeclContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorName.
- def enterActorName(self, ctx: OpenSCENARIO2Parser.ActorNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorName.
- def exitActorName(self, ctx: OpenSCENARIO2Parser.ActorNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#scenarioDeclaration.
- def enterScenarioDeclaration(
- self, ctx: OpenSCENARIO2Parser.ScenarioDeclarationContext
- ):
- self.__node_stack.append(self.__cur_node)
- qualified_behavior_name = ctx.qualifiedBehaviorName().getText()
-
- scenario_name = QualifiedBehaviorSymbol(
- qualified_behavior_name, self.__current_scope
- )
- scenario_name.is_qualified_behavior_name_valid(ctx.start)
- scenario = ScenarioSymbol(scenario_name)
- self.__current_scope.define(scenario, ctx.start)
-
- node = ast_node.ScenarioDeclaration(qualified_behavior_name)
- node.set_loc(ctx.start.line, ctx.start.column)
-
- scenario.declaration_address = node
- self.__current_scope = scenario
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#scenarioDeclaration.
- def exitScenarioDeclaration(
- self, ctx: OpenSCENARIO2Parser.ScenarioDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#scenarioInherts.
- def enterScenarioInherts(self, ctx: OpenSCENARIO2Parser.ScenarioInhertsContext):
- self.__node_stack.append(self.__cur_node)
- qualified_behavior_name = ctx.qualifiedBehaviorName().getText()
-
- # Searches the scope of the inheritance scenario_name
- scope = self.__current_scope.resolve(qualified_behavior_name)
-
- if scope and isinstance(scope, ScenarioSymbol):
- scenario_name = QualifiedBehaviorSymbol(
- qualified_behavior_name, self.__current_scope
- )
- scenario_name.is_qualified_behavior_name_valid(ctx.start)
- scenario_inherts = ScenarioInhertsSymbol(scenario_name)
-
- self.__current_scope.define(scenario_inherts, ctx.start)
- self.__current_scope = scenario_inherts
- else:
- msg = "inherits " + qualified_behavior_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- node = ast_node.ScenarioInherts(qualified_behavior_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#scenarioInherts.
- def exitScenarioInherts(self, ctx: OpenSCENARIO2Parser.ScenarioInhertsContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#scenarioMemberDecl.
- def enterScenarioMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ScenarioMemberDeclContext
- ):
- self.__node_stack.append(self.__cur_node)
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#scenarioMemberDecl.
- def exitScenarioMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ScenarioMemberDeclContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#qualifiedBehaviorName.
- def enterQualifiedBehaviorName(
- self, ctx: OpenSCENARIO2Parser.QualifiedBehaviorNameContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#qualifiedBehaviorName.
- def exitQualifiedBehaviorName(
- self, ctx: OpenSCENARIO2Parser.QualifiedBehaviorNameContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorName.
- def enterBehaviorName(self, ctx: OpenSCENARIO2Parser.BehaviorNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorName.
- def exitBehaviorName(self, ctx: OpenSCENARIO2Parser.BehaviorNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actionDeclaration.
- def enterActionDeclaration(self, ctx: OpenSCENARIO2Parser.ActionDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- qualified_behavior_name = ctx.qualifiedBehaviorName().getText()
-
- action_name = QualifiedBehaviorSymbol(
- qualified_behavior_name, self.__current_scope
- )
- action_name.is_qualified_behavior_name_valid(ctx.start)
- action = ActionSymbol(action_name)
- self.__current_scope.define(action, ctx.start)
- self.__current_scope = action
-
- node = ast_node.ActionDeclaration(qualified_behavior_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actionDeclaration.
- def exitActionDeclaration(self, ctx: OpenSCENARIO2Parser.ActionDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actionInherts.
- def enterActionInherts(self, ctx: OpenSCENARIO2Parser.ActionInhertsContext):
- self.__node_stack.append(self.__cur_node)
- qualified_behavior_name = ctx.qualifiedBehaviorName().getText()
-
- # Finds the scope of the inherited action_name
- scope = self.__current_scope.resolve(qualified_behavior_name)
-
- if scope and isinstance(scope, ActionSymbol):
- pass
- else:
- msg = "inherits " + qualified_behavior_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- action_name = QualifiedBehaviorSymbol(
- qualified_behavior_name, self.__current_scope
- )
- action_name.is_qualified_behavior_name_valid(ctx.start)
- action_inherits = ActionInhertsSymbol(action_name, scope)
- self.__current_scope.define(action_inherits, ctx.start)
-
- node = ast_node.ActionInherts(qualified_behavior_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actionInherts.
- def exitActionInherts(self, ctx: OpenSCENARIO2Parser.ActionInhertsContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#modifierDeclaration.
- def enterModifierDeclaration(
- self, ctx: OpenSCENARIO2Parser.ModifierDeclarationContext
- ):
- self.__node_stack.append(self.__cur_node)
- actor_name = None
- if ctx.actorName():
- actor_name = ctx.actorName().getText()
- if self.__current_scope.resolve(actor_name):
- pass
- else:
- msg = "Actor: " + actor_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- modifier_name = ctx.modifierName().getText()
-
- modifier = ModifierSymbol(modifier_name, self.__current_scope)
- self.__current_scope.define(modifier, ctx.start)
- self.__current_scope = modifier
-
- node = ast_node.ModifierDeclaration(actor_name, modifier_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#modifierDeclaration.
- def exitModifierDeclaration(
- self, ctx: OpenSCENARIO2Parser.ModifierDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#modifierName.
- def enterModifierName(self, ctx: OpenSCENARIO2Parser.ModifierNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#modifierName.
- def exitModifierName(self, ctx: OpenSCENARIO2Parser.ModifierNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeExtension.
- def enterTypeExtension(self, ctx: OpenSCENARIO2Parser.TypeExtensionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeExtension.
- def exitTypeExtension(self, ctx: OpenSCENARIO2Parser.TypeExtensionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumTypeExtension.
- def enterEnumTypeExtension(self, ctx: OpenSCENARIO2Parser.EnumTypeExtensionContext):
- # TODO Here use the symbol table to query the value of the last element of the extended enum
- # and set self.__enum_member_idx
- # Finds the same enum in the current scope (global scope)
- self.__node_stack.append(self.__cur_node)
- enum_name = ctx.enumName().getText()
-
- if enum_name in self.__current_scope.symbols and isinstance(
- self.__current_scope.symbols[enum_name], EnumSymbol
- ):
- self.__current_scope = self.__current_scope.symbols[enum_name]
- else:
- msg = enum_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- node = ast_node.EnumTypeExtension(enum_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumTypeExtension.
- def exitEnumTypeExtension(self, ctx: OpenSCENARIO2Parser.EnumTypeExtensionContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structuredTypeExtension.
- def enterStructuredTypeExtension(
- self, ctx: OpenSCENARIO2Parser.StructuredTypeExtensionContext
- ):
- self.__node_stack.append(self.__cur_node)
-
- type_name = None
- if ctx.extendableTypeName().typeName():
- type_name = ctx.extendableTypeName().typeName().getText()
- # Even if a symbol table with the corresponding name is found,
- # it is necessary to determine whether the extended symbol table matches the original type
- if type_name in self.__current_scope.symbols:
- for extend_member in ctx.extensionMemberDecl():
- if extend_member.structMemberDecl() and isinstance(
- self.__current_scope.symbols[type_name], StructSymbol
- ):
- self.__current_scope = self.__current_scope.symbols[type_name]
- elif extend_member.actorMemberDecl and isinstance(
- self.__current_scope.symbols[type_name], ActorSymbol
- ):
- self.__current_scope = self.__current_scope.symbols[type_name]
- elif extend_member.scenarioMemberDecl and isinstance(
- self.__current_scope.symbols[type_name], ScenarioSymbol
- ):
- self.__current_scope = self.__current_scope.symbols[type_name]
- elif extend_member.behaviorSpecification:
- # TODO
- msg = "I haven't written the code yet"
- LOG_ERROR(msg, ctx.start)
- else:
- msg = type_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
- else:
- msg = type_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- # The two ifs here are syntactically mutually exclusive
- qualified_behavior_name = None
- if ctx.extendableTypeName().qualifiedBehaviorName():
- qualified_behavior_name = (
- ctx.extendableTypeName().qualifiedBehaviorName().getText()
- )
- if qualified_behavior_name in self.__current_scope.symbols:
- for extend_member in ctx.extensionMemberDecl():
- if extend_member.scenarioMemberDecl and isinstance(
- self.__current_scope.symbols[qualified_behavior_name],
- ScenarioSymbol,
- ):
- self.__current_scope = self.__current_scope.symbols[
- qualified_behavior_name
- ]
- elif extend_member.behaviorSpecification:
- # TODO
- msg = "not implemented"
- LOG_ERROR(msg, ctx.start)
- else:
- msg = qualified_behavior_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
- else:
- msg = qualified_behavior_name + " is Not defined!"
- LOG_ERROR(msg, ctx.start)
-
- node = ast_node.StructuredTypeExtension(type_name, qualified_behavior_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structuredTypeExtension.
- def exitStructuredTypeExtension(
- self, ctx: OpenSCENARIO2Parser.StructuredTypeExtensionContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#extendableTypeName.
- def enterExtendableTypeName(
- self, ctx: OpenSCENARIO2Parser.ExtendableTypeNameContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#extendableTypeName.
- def exitExtendableTypeName(
- self, ctx: OpenSCENARIO2Parser.ExtendableTypeNameContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#extensionMemberDecl.
- def enterExtensionMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ExtensionMemberDeclContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#extensionMemberDecl.
- def exitExtensionMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ExtensionMemberDeclContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#globalParameterDeclaration.
- def enterGlobalParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.GlobalParameterDeclarationContext
- ):
- defaultValue = None
- if ctx.defaultValue():
- defaultValue = ctx.defaultValue().getText()
- field_type = ctx.typeDeclarator().getText()
- self.__node_stack.append(self.__cur_node)
- field_name = []
- multi_field_name = ""
- for fn in ctx.fieldName():
- name = fn.Identifier().getText()
- if name in field_name:
- msg = "Can not define same param in same scope!"
- LOG_ERROR(msg, ctx.start)
- field_name.append(name)
- multi_field_name = multi_field_name_append(multi_field_name, name)
-
- parameter = ParameterSymbol(
- multi_field_name, self.__current_scope, field_type, defaultValue
- )
- self.__current_scope.define(parameter, ctx.start)
- self.__current_scope = parameter
-
- node = ast_node.GlobalParameterDeclaration(field_name, field_type)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#globalParameterDeclaration.
- def exitGlobalParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.GlobalParameterDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeDeclarator.
- def enterTypeDeclarator(self, ctx: OpenSCENARIO2Parser.TypeDeclaratorContext):
- self.__node_stack.append(self.__cur_node)
- type_name = None
- if ctx.nonAggregateTypeDeclarator():
- type_name = ctx.nonAggregateTypeDeclarator().getText()
- elif ctx.aggregateTypeDeclarator():
- type_name = ctx.aggregateTypeDeclarator().getText()
-
- node = ast_node.Type(type_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeDeclarator.
- def exitTypeDeclarator(self, ctx: OpenSCENARIO2Parser.TypeDeclaratorContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#nonAggregateTypeDeclarator.
- def enterNonAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#nonAggregateTypeDeclarator.
- def exitNonAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#aggregateTypeDeclarator.
- def enterAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.AggregateTypeDeclaratorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#aggregateTypeDeclarator.
- def exitAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.AggregateTypeDeclaratorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#listTypeDeclarator.
- def enterListTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.ListTypeDeclaratorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#listTypeDeclarator.
- def exitListTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.ListTypeDeclaratorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#primitiveType.
- def enterPrimitiveType(self, ctx: OpenSCENARIO2Parser.PrimitiveTypeContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#primitiveType.
- def exitPrimitiveType(self, ctx: OpenSCENARIO2Parser.PrimitiveTypeContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeName.
- def enterTypeName(self, ctx: OpenSCENARIO2Parser.TypeNameContext):
- name = ctx.Identifier().getText()
- # Find the scope of type_name
- scope = self.__current_scope.resolve(name)
-
- if scope:
- pass
- else:
- msg = "Type name: " + name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeName.
- def exitTypeName(self, ctx: OpenSCENARIO2Parser.TypeNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventDeclaration.
- def enterEventDeclaration(self, ctx: OpenSCENARIO2Parser.EventDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- event_name = ctx.eventName().getText()
-
- node = ast_node.EventDeclaration(event_name)
- node.set_loc(ctx.start.line, ctx.start.column)
-
- event = EventSymbol(event_name, self.__current_scope)
- self.__current_scope.define(event, ctx.start)
- self.__current_scope = event
-
- self.__current_scope.declaration_address = node
-
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventDeclaration.
- def exitEventDeclaration(self, ctx: OpenSCENARIO2Parser.EventDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventSpecification.
- def enterEventSpecification(
- self, ctx: OpenSCENARIO2Parser.EventSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventSpecification.
- def exitEventSpecification(
- self, ctx: OpenSCENARIO2Parser.EventSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventReference.
- def enterEventReference(self, ctx: OpenSCENARIO2Parser.EventReferenceContext):
- self.__node_stack.append(self.__cur_node)
- event_path = ctx.eventPath().getText()
- node = ast_node.EventReference(event_path)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventReference.
- def exitEventReference(self, ctx: OpenSCENARIO2Parser.EventReferenceContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventFieldDecl.
- def enterEventFieldDecl(self, ctx: OpenSCENARIO2Parser.EventFieldDeclContext):
- self.__node_stack.append(self.__cur_node)
- event_field_name = ctx.eventFieldName().getText()
- node = ast_node.EventFieldDecl(event_field_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventFieldDecl.
- def exitEventFieldDecl(self, ctx: OpenSCENARIO2Parser.EventFieldDeclContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventFieldName.
- def enterEventFieldName(self, ctx: OpenSCENARIO2Parser.EventFieldNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventFieldName.
- def exitEventFieldName(self, ctx: OpenSCENARIO2Parser.EventFieldNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventName.
- def enterEventName(self, ctx: OpenSCENARIO2Parser.EventNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventName.
- def exitEventName(self, ctx: OpenSCENARIO2Parser.EventNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventPath.
- def enterEventPath(self, ctx: OpenSCENARIO2Parser.EventPathContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventPath.
- def exitEventPath(self, ctx: OpenSCENARIO2Parser.EventPathContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventCondition.
- def enterEventCondition(self, ctx: OpenSCENARIO2Parser.EventConditionContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.EventCondition()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventCondition.
- def exitEventCondition(self, ctx: OpenSCENARIO2Parser.EventConditionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#riseExpression.
- def enterRiseExpression(self, ctx: OpenSCENARIO2Parser.RiseExpressionContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.RiseExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#riseExpression.
- def exitRiseExpression(self, ctx: OpenSCENARIO2Parser.RiseExpressionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fallExpression.
- def enterFallExpression(self, ctx: OpenSCENARIO2Parser.FallExpressionContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.FallExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fallExpression.
- def exitFallExpression(self, ctx: OpenSCENARIO2Parser.FallExpressionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#elapsedExpression.
- def enterElapsedExpression(self, ctx: OpenSCENARIO2Parser.ElapsedExpressionContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.ElapsedExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#elapsedExpression.
- def exitElapsedExpression(self, ctx: OpenSCENARIO2Parser.ElapsedExpressionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#everyExpression.
- def enterEveryExpression(self, ctx: OpenSCENARIO2Parser.EveryExpressionContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.EveryExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#everyExpression.
- def exitEveryExpression(self, ctx: OpenSCENARIO2Parser.EveryExpressionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#boolExpression.
- def enterBoolExpression(self, ctx: OpenSCENARIO2Parser.BoolExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#boolExpression.
- def exitBoolExpression(self, ctx: OpenSCENARIO2Parser.BoolExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#durationExpression.
- def enterDurationExpression(
- self, ctx: OpenSCENARIO2Parser.DurationExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#durationExpression.
- def exitDurationExpression(
- self, ctx: OpenSCENARIO2Parser.DurationExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldDeclaration.
- def enterFieldDeclaration(self, ctx: OpenSCENARIO2Parser.FieldDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldDeclaration.
- def exitFieldDeclaration(self, ctx: OpenSCENARIO2Parser.FieldDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterDeclaration.
- def enterParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterDeclarationContext
- ):
- defaultValue = None
- if ctx.defaultValue():
- defaultValue = ctx.defaultValue().getText()
- field_type = ctx.typeDeclarator().getText()
- self.__node_stack.append(self.__cur_node)
- field_name = []
-
- multi_field_name = ""
- for fn in ctx.fieldName():
- name = fn.Identifier().getText()
- if name in field_name:
- msg = "Can not define same param in same scope!"
- LOG_ERROR(msg, ctx.start)
- field_name.append(name)
- multi_field_name = multi_field_name_append(multi_field_name, name)
-
- parameter = ParameterSymbol(
- multi_field_name, self.__current_scope, field_type, defaultValue
- )
- self.__current_scope.define(parameter, ctx.start)
- self.__current_scope = parameter
-
- node = ast_node.ParameterDeclaration(field_name, field_type)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterDeclaration.
- def exitParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#variableDeclaration.
- def enterVariableDeclaration(
- self, ctx: OpenSCENARIO2Parser.VariableDeclarationContext
- ):
- self.__node_stack.append(self.__cur_node)
- field_name = []
- defaultValue = None
- if ctx.sampleExpression():
- defaultValue = ctx.sampleExpression().getText()
- elif ctx.valueExp():
- defaultValue = ctx.valueExp().getText()
-
- multi_field_name = ""
- for fn in ctx.fieldName():
- name = fn.Identifier().getText()
- if name in field_name:
- msg = "Can not define same param in same scope!"
- LOG_ERROR(msg, ctx.start)
- field_name.append(name)
- multi_field_name = multi_field_name_append(multi_field_name, name)
-
- field_type = ctx.typeDeclarator().getText()
-
- variable = VariableSymbol(
- multi_field_name, self.__current_scope, field_type, defaultValue
- )
- self.__current_scope.define(variable, ctx.start)
- self.__current_scope = variable
-
- node = ast_node.VariableDeclaration(field_name, field_type)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#variableDeclaration.
- def exitVariableDeclaration(
- self, ctx: OpenSCENARIO2Parser.VariableDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sampleExpression.
- def enterSampleExpression(self, ctx: OpenSCENARIO2Parser.SampleExpressionContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.SampleExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sampleExpression.
- def exitSampleExpression(self, ctx: OpenSCENARIO2Parser.SampleExpressionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#defaultValue.
- def enterDefaultValue(self, ctx: OpenSCENARIO2Parser.DefaultValueContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#defaultValue.
- def exitDefaultValue(self, ctx: OpenSCENARIO2Parser.DefaultValueContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterWithDeclaration.
- def enterParameterWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterWithDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterWithDeclaration.
- def exitParameterWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterWithDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterWithMember.
- def enterParameterWithMember(
- self, ctx: OpenSCENARIO2Parser.ParameterWithMemberContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterWithMember.
- def exitParameterWithMember(
- self, ctx: OpenSCENARIO2Parser.ParameterWithMemberContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#constraintDeclaration.
- def enterConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.ConstraintDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#constraintDeclaration.
- def exitConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.ConstraintDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#keepConstraintDeclaration.
- def enterKeepConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.KeepConstraintDeclarationContext
- ):
- self.__node_stack.append(self.__cur_node)
- constraint_qualifier = None
- if ctx.constraintQualifier():
- constraint_qualifier = ctx.constraintQualifier().getText()
-
- keep_symbol = KeepScope(self.__current_scope, constraint_qualifier)
- self.__current_scope.define(keep_symbol, ctx.start)
- self.__current_scope = keep_symbol
-
- node = ast_node.KeepConstraintDeclaration(constraint_qualifier)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#keepConstraintDeclaration.
- def exitKeepConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.KeepConstraintDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#constraintQualifier.
- def enterConstraintQualifier(
- self, ctx: OpenSCENARIO2Parser.ConstraintQualifierContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#constraintQualifier.
- def exitConstraintQualifier(
- self, ctx: OpenSCENARIO2Parser.ConstraintQualifierContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#constraintExpression.
- def enterConstraintExpression(
- self, ctx: OpenSCENARIO2Parser.ConstraintExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#constraintExpression.
- def exitConstraintExpression(
- self, ctx: OpenSCENARIO2Parser.ConstraintExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#removeDefaultDeclaration.
- def enterRemoveDefaultDeclaration(
- self, ctx: OpenSCENARIO2Parser.RemoveDefaultDeclarationContext
- ):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.RemoveDefaultDeclaration()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#removeDefaultDeclaration.
- def exitRemoveDefaultDeclaration(
- self, ctx: OpenSCENARIO2Parser.RemoveDefaultDeclarationContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterReference.
- def enterParameterReference(
- self, ctx: OpenSCENARIO2Parser.ParameterReferenceContext
- ):
- self.__node_stack.append(self.__cur_node)
- field_name = None
- if ctx.fieldName():
- field_name = ctx.fieldName().getText()
-
- field_access = None
- if ctx.fieldAccess():
- field_access = ctx.fieldAccess().getText()
-
- node = ast_node.ParameterReference(field_name, field_access)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterReference.
- def exitParameterReference(
- self, ctx: OpenSCENARIO2Parser.ParameterReferenceContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#modifierInvocation.
- def enterModifierInvocation(
- self, ctx: OpenSCENARIO2Parser.ModifierInvocationContext
- ):
- self.__node_stack.append(self.__cur_node)
- modifier_name = ctx.modifierName().getText()
-
- actor = None
- if ctx.actorExpression():
- actor = ctx.actorExpression().getText()
-
- if ctx.behaviorExpression():
- actor = ctx.behaviorExpression().getText()
-
- scope = None
- if actor is not None:
- scope = self.__current_scope.resolve(actor)
- if scope:
- pass
- else:
- msg = actor + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- if scope is None:
- scope = self.__current_scope
-
- node = ast_node.ModifierInvocation(actor, modifier_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#modifierInvocation.
- def exitModifierInvocation(
- self, ctx: OpenSCENARIO2Parser.ModifierInvocationContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorExpression.
- def enterBehaviorExpression(
- self, ctx: OpenSCENARIO2Parser.BehaviorExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorExpression.
- def exitBehaviorExpression(
- self, ctx: OpenSCENARIO2Parser.BehaviorExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorSpecification.
- def enterBehaviorSpecification(
- self, ctx: OpenSCENARIO2Parser.BehaviorSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorSpecification.
- def exitBehaviorSpecification(
- self, ctx: OpenSCENARIO2Parser.BehaviorSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#onDirective.
- def enterOnDirective(self, ctx: OpenSCENARIO2Parser.OnDirectiveContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.OnDirective()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#onDirective.
- def exitOnDirective(self, ctx: OpenSCENARIO2Parser.OnDirectiveContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#onMember.
- def enterOnMember(self, ctx: OpenSCENARIO2Parser.OnMemberContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#onMember.
- def exitOnMember(self, ctx: OpenSCENARIO2Parser.OnMemberContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#doDirective.
- def enterDoDirective(self, ctx: OpenSCENARIO2Parser.DoDirectiveContext):
- self.__node_stack.append(self.__cur_node)
-
- do_directive_scope = DoDirectiveScope(self.__current_scope)
- self.__current_scope.define(do_directive_scope, ctx.start)
- self.__current_scope = do_directive_scope
-
- node = ast_node.DoDirective()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#doDirective.
- def exitDoDirective(self, ctx: OpenSCENARIO2Parser.DoDirectiveContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#doMember.
- def enterDoMember(self, ctx: OpenSCENARIO2Parser.DoMemberContext):
- self.__node_stack.append(self.__cur_node)
- label_name = None
-
- if ctx.labelName():
- label_name = ctx.labelName().getText()
-
- composition_operator = None
- if ctx.composition():
- composition_operator = ctx.composition().compositionOperator().getText()
-
- if composition_operator is not None:
- domember = DoMemberSymbol(
- label_name, self.__current_scope, composition_operator
- )
- self.__current_scope.define(domember, ctx.start)
- self.__current_scope = domember
-
- node = ast_node.DoMember(label_name, composition_operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#doMember.
- def exitDoMember(self, ctx: OpenSCENARIO2Parser.DoMemberContext):
- self.__cur_node = self.__node_stack.pop()
- if ctx.composition() is not None:
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#composition.
- def enterComposition(self, ctx: OpenSCENARIO2Parser.CompositionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#composition.
- def exitComposition(self, ctx: OpenSCENARIO2Parser.CompositionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#compositionOperator.
- def enterCompositionOperator(
- self, ctx: OpenSCENARIO2Parser.CompositionOperatorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#compositionOperator.
- def exitCompositionOperator(
- self, ctx: OpenSCENARIO2Parser.CompositionOperatorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorInvocation.
- def enterBehaviorInvocation(
- self, ctx: OpenSCENARIO2Parser.BehaviorInvocationContext
- ):
- self.__node_stack.append(self.__cur_node)
- actor = None
- name = ""
- behavior_name = ctx.behaviorName().getText()
- if ctx.actorExpression():
- actor = ctx.actorExpression().getText()
- name += actor + "."
-
- name += behavior_name
-
- # Find the scope of type_name
- scope = self.__current_scope.resolve(name)
-
- if scope:
- pass
- else:
- msg = "behavior name: " + name + " is not defined!"
- pass
-
- node = ast_node.BehaviorInvocation(actor, behavior_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorInvocation.
- def exitBehaviorInvocation(
- self, ctx: OpenSCENARIO2Parser.BehaviorInvocationContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorWithDeclaration.
- def enterBehaviorWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorWithDeclaration.
- def exitBehaviorWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithDeclarationContext
- ):
- # self.__current_scope = self.__current_scope.get_enclosing_scope()
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorWithMember.
- def enterBehaviorWithMember(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithMemberContext
- ):
- self.__node_stack.append(self.__cur_node)
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorWithMember.
- def exitBehaviorWithMember(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithMemberContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#labelName.
- def enterLabelName(self, ctx: OpenSCENARIO2Parser.LabelNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#labelName.
- def exitLabelName(self, ctx: OpenSCENARIO2Parser.LabelNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorExpression.
- def enterActorExpression(self, ctx: OpenSCENARIO2Parser.ActorExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorExpression.
- def exitActorExpression(self, ctx: OpenSCENARIO2Parser.ActorExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#waitDirective.
- def enterWaitDirective(self, ctx: OpenSCENARIO2Parser.WaitDirectiveContext):
- self.__node_stack.append(self.__cur_node)
-
- wait_scope = WaitSymbol(self.__current_scope)
- self.__current_scope.define(wait_scope, ctx.start)
- self.__current_scope = wait_scope
-
- node = ast_node.WaitDirective()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#waitDirective.
- def exitWaitDirective(self, ctx: OpenSCENARIO2Parser.WaitDirectiveContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#emitDirective.
- def enterEmitDirective(self, ctx: OpenSCENARIO2Parser.EmitDirectiveContext):
- self.__node_stack.append(self.__cur_node)
- event_name = ctx.eventName().getText()
- node = ast_node.EmitDirective(event_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#emitDirective.
- def exitEmitDirective(self, ctx: OpenSCENARIO2Parser.EmitDirectiveContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#callDirective.
- def enterCallDirective(self, ctx: OpenSCENARIO2Parser.CallDirectiveContext):
- self.__node_stack.append(self.__cur_node)
- method_name = ctx.methodInvocation().postfixExp().getText()
-
- node = ast_node.CallDirective(method_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#callDirective.
- def exitCallDirective(self, ctx: OpenSCENARIO2Parser.CallDirectiveContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#untilDirective.
- def enterUntilDirective(self, ctx: OpenSCENARIO2Parser.UntilDirectiveContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.UntilDirective()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#untilDirective.
- def exitUntilDirective(self, ctx: OpenSCENARIO2Parser.UntilDirectiveContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodInvocation.
- def enterMethodInvocation(self, ctx: OpenSCENARIO2Parser.MethodInvocationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodInvocation.
- def exitMethodInvocation(self, ctx: OpenSCENARIO2Parser.MethodInvocationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodDeclaration.
- def enterMethodDeclaration(self, ctx: OpenSCENARIO2Parser.MethodDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- method_name = ctx.methodName().getText()
- return_type = None
- if ctx.returnType():
- return_type = ctx.returnType().getText()
-
- method = MethodSymbol(method_name, self.__current_scope)
-
- node = ast_node.MethodDeclaration(method_name, return_type)
- node.set_loc(ctx.start.line, ctx.start.column)
-
- method.declaration_address = node
- self.__current_scope.define(method, ctx.start)
- self.__current_scope = method
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodDeclaration.
- def exitMethodDeclaration(self, ctx: OpenSCENARIO2Parser.MethodDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#returnType.
- def enterReturnType(self, ctx: OpenSCENARIO2Parser.ReturnTypeContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#returnType.
- def exitReturnType(self, ctx: OpenSCENARIO2Parser.ReturnTypeContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodImplementation.
- def enterMethodImplementation(
- self, ctx: OpenSCENARIO2Parser.MethodImplementationContext
- ):
- self.__node_stack.append(self.__cur_node)
- qualifier = None
- if ctx.methodQualifier():
- qualifier = ctx.methodQualifier().getText()
-
- if ctx.expression():
- _type = "expression"
- elif ctx.structuredIdentifier():
- _type = "external"
- else:
- _type = "undefined"
-
- external_name = None
- if ctx.structuredIdentifier():
- external_name = ctx.structuredIdentifier().getText()
-
- node = ast_node.MethodBody(qualifier, _type, external_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodImplementation.
- def exitMethodImplementation(
- self, ctx: OpenSCENARIO2Parser.MethodImplementationContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodQualifier.
- def enterMethodQualifier(self, ctx: OpenSCENARIO2Parser.MethodQualifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodQualifier.
- def exitMethodQualifier(self, ctx: OpenSCENARIO2Parser.MethodQualifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodName.
- def enterMethodName(self, ctx: OpenSCENARIO2Parser.MethodNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodName.
- def exitMethodName(self, ctx: OpenSCENARIO2Parser.MethodNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageDeclaration.
- def enterCoverageDeclaration(
- self, ctx: OpenSCENARIO2Parser.CoverageDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageDeclaration.
- def exitCoverageDeclaration(
- self, ctx: OpenSCENARIO2Parser.CoverageDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverDeclaration.
- def enterCoverDeclaration(self, ctx: OpenSCENARIO2Parser.CoverDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- target_name = None
- if ctx.targetName():
- target_name = ctx.targetName().getText()
-
- node = ast_node.coverDeclaration(target_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverDeclaration.
- def exitCoverDeclaration(self, ctx: OpenSCENARIO2Parser.CoverDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#recordDeclaration.
- def enterRecordDeclaration(self, ctx: OpenSCENARIO2Parser.RecordDeclarationContext):
- self.__node_stack.append(self.__cur_node)
- target_name = None
- if ctx.targetName():
- target_name = ctx.targetName().getText()
-
- node = ast_node.recordDeclaration(target_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#recordDeclaration.
- def exitRecordDeclaration(self, ctx: OpenSCENARIO2Parser.RecordDeclarationContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageExpression.
- def enterCoverageExpression(
- self, ctx: OpenSCENARIO2Parser.CoverageExpressionContext
- ):
- self.__node_stack.append(self.__cur_node)
- argument_name = "expression"
- node = ast_node.NamedArgument(argument_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageExpression.
- def exitCoverageExpression(
- self, ctx: OpenSCENARIO2Parser.CoverageExpressionContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageUnit.
- def enterCoverageUnit(self, ctx: OpenSCENARIO2Parser.CoverageUnitContext):
- self.__node_stack.append(self.__cur_node)
- argument_name = "unit"
- node = ast_node.NamedArgument(argument_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- unit_name = ast_node.Identifier(ctx.Identifier().getText())
- unit_name.set_loc(ctx.start.line, ctx.start.column)
- unit_name.set_scope(self.__current_scope)
- node.set_children(unit_name)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageUnit.
- def exitCoverageUnit(self, ctx: OpenSCENARIO2Parser.CoverageUnitContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageRange.
- def enterCoverageRange(self, ctx: OpenSCENARIO2Parser.CoverageRangeContext):
- self.__node_stack.append(self.__cur_node)
- argument_name = "range"
- node = ast_node.NamedArgument(argument_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageRange.
- def exitCoverageRange(self, ctx: OpenSCENARIO2Parser.CoverageRangeContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageEvery.
- def enterCoverageEvery(self, ctx: OpenSCENARIO2Parser.CoverageEveryContext):
- self.__node_stack.append(self.__cur_node)
- argument_name = "every"
- node = ast_node.NamedArgument(argument_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageEvery.
- def exitCoverageEvery(self, ctx: OpenSCENARIO2Parser.CoverageEveryContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageEvent.
- def enterCoverageEvent(self, ctx: OpenSCENARIO2Parser.CoverageEventContext):
- self.__node_stack.append(self.__cur_node)
- argument_name = "event"
- node = ast_node.NamedArgument(argument_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageEvent.
- def exitCoverageEvent(self, ctx: OpenSCENARIO2Parser.CoverageEventContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageNameArgument.
- def enterCoverageNameArgument(
- self, ctx: OpenSCENARIO2Parser.CoverageNameArgumentContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageNameArgument.
- def exitCoverageNameArgument(
- self, ctx: OpenSCENARIO2Parser.CoverageNameArgumentContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#targetName.
- def enterTargetName(self, ctx: OpenSCENARIO2Parser.TargetNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#targetName.
- def exitTargetName(self, ctx: OpenSCENARIO2Parser.TargetNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#expression.
- def enterExpression(self, ctx: OpenSCENARIO2Parser.ExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#expression.
- def exitExpression(self, ctx: OpenSCENARIO2Parser.ExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#ternaryOpExp.
- def enterTernaryOpExp(self, ctx: OpenSCENARIO2Parser.TernaryOpExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#ternaryOpExp.
- def exitTernaryOpExp(self, ctx: OpenSCENARIO2Parser.TernaryOpExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#implication.
- def enterImplication(self, ctx: OpenSCENARIO2Parser.ImplicationContext):
- self.__node_stack.append(self.__cur_node)
- if len(ctx.disjunction()) > 1:
- operator = "=>"
- node = ast_node.LogicalExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#implication.
- def exitImplication(self, ctx: OpenSCENARIO2Parser.ImplicationContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#disjunction.
- def enterDisjunction(self, ctx: OpenSCENARIO2Parser.DisjunctionContext):
- self.__node_stack.append(self.__cur_node)
- if len(ctx.conjunction()) > 1:
- operator = "or"
- node = ast_node.LogicalExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#disjunction.
- def exitDisjunction(self, ctx: OpenSCENARIO2Parser.DisjunctionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#conjunction.
- def enterConjunction(self, ctx: OpenSCENARIO2Parser.ConjunctionContext):
- self.__node_stack.append(self.__cur_node)
- if len(ctx.inversion()) > 1:
- operator = "and"
- node = ast_node.LogicalExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#conjunction.
- def exitConjunction(self, ctx: OpenSCENARIO2Parser.ConjunctionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#inversion.
- def enterInversion(self, ctx: OpenSCENARIO2Parser.InversionContext):
- self.__node_stack.append(self.__cur_node)
- if ctx.relation() == None:
- operator = "not"
- node = ast_node.LogicalExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#inversion.
- def exitInversion(self, ctx: OpenSCENARIO2Parser.InversionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#relation.
- def enterRelation(self, ctx: OpenSCENARIO2Parser.RelationContext):
- self.__node_stack.append(self.__cur_node)
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#relation.
- def exitRelation(self, ctx: OpenSCENARIO2Parser.RelationContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#relationExp.
- def enterRelationExp(self, ctx: OpenSCENARIO2Parser.RelationExpContext):
- self.__node_stack.append(self.__cur_node)
- operator = ctx.relationalOp().getText()
- node = ast_node.RelationExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#relationExp.
- def exitRelationExp(self, ctx: OpenSCENARIO2Parser.RelationExpContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#relationalOp.
- def enterRelationalOp(self, ctx: OpenSCENARIO2Parser.RelationalOpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#relationalOp.
- def exitRelationalOp(self, ctx: OpenSCENARIO2Parser.RelationalOpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sum.
- def enterSum(self, ctx: OpenSCENARIO2Parser.SumContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sum.
- def exitSum(self, ctx: OpenSCENARIO2Parser.SumContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#additiveExp.
- def enterAdditiveExp(self, ctx: OpenSCENARIO2Parser.AdditiveExpContext):
- self.__node_stack.append(self.__cur_node)
- operator = ctx.additiveOp().getText()
- node = ast_node.BinaryExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#additiveExp.
- def exitAdditiveExp(self, ctx: OpenSCENARIO2Parser.AdditiveExpContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#additiveOp.
- def enterAdditiveOp(self, ctx: OpenSCENARIO2Parser.AdditiveOpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#additiveOp.
- def exitAdditiveOp(self, ctx: OpenSCENARIO2Parser.AdditiveOpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#multiplicativeExp.
- def enterMultiplicativeExp(self, ctx: OpenSCENARIO2Parser.MultiplicativeExpContext):
- self.__node_stack.append(self.__cur_node)
- operator = ctx.multiplicativeOp().getText()
- node = ast_node.BinaryExpression(operator)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#multiplicativeExp.
- def exitMultiplicativeExp(self, ctx: OpenSCENARIO2Parser.MultiplicativeExpContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#term.
- def enterTerm(self, ctx: OpenSCENARIO2Parser.TermContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#term.
- def exitTerm(self, ctx: OpenSCENARIO2Parser.TermContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#multiplicativeOp.
- def enterMultiplicativeOp(self, ctx: OpenSCENARIO2Parser.MultiplicativeOpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#multiplicativeOp.
- def exitMultiplicativeOp(self, ctx: OpenSCENARIO2Parser.MultiplicativeOpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#factor.
- def enterFactor(self, ctx: OpenSCENARIO2Parser.FactorContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#factor.
- def exitFactor(self, ctx: OpenSCENARIO2Parser.FactorContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#primaryExpression.
- def enterPrimaryExpression(self, ctx: OpenSCENARIO2Parser.PrimaryExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#primaryExpression.
- def exitPrimaryExpression(self, ctx: OpenSCENARIO2Parser.PrimaryExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#castExpression.
- def enterCastExpression(self, ctx: OpenSCENARIO2Parser.CastExpressionContext):
- self.__node_stack.append(self.__cur_node)
- object = ctx.postfixExp().getText()
- target_type = ctx.typeDeclarator().getText()
- node = ast_node.CastExpression(object, target_type)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#castExpression.
- def exitCastExpression(self, ctx: OpenSCENARIO2Parser.CastExpressionContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#functionApplicationExpression.
- def enterFunctionApplicationExpression(
- self, ctx: OpenSCENARIO2Parser.FunctionApplicationExpressionContext
- ):
- self.__node_stack.append(self.__cur_node)
- func_name = ctx.postfixExp().getText()
- scope = self.__current_scope
- func_name_list = func_name.split(".", 1)
- if len(func_name_list) > 1:
- scope = scope.resolve(func_name_list[0])
- node = ast_node.FunctionApplicationExpression(func_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#functionApplicationExpression.
- def exitFunctionApplicationExpression(
- self, ctx: OpenSCENARIO2Parser.FunctionApplicationExpressionContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldAccessExpression.
- def enterFieldAccessExpression(
- self, ctx: OpenSCENARIO2Parser.FieldAccessExpressionContext
- ):
- self.__node_stack.append(self.__cur_node)
- field_name = ctx.postfixExp().getText() + "." + ctx.fieldName().getText()
-
- if ctx.postfixExp().getText() == "it":
- field_name = self.__current_scope.get_enclosing_scope().type
- scope = None
- if self.__current_scope.resolve(field_name):
- scope = self.__current_scope.resolve(field_name)
- if ctx.fieldName().getText() in scope.symbols:
- pass
- else:
- msg = (
- ctx.fieldName().getText()
- + " is not defined in scope: "
- + self.__current_scope.get_enclosing_scope().type
- )
- LOG_ERROR(msg, ctx.start)
- else:
- msg = "it -> " + field_name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- node = ast_node.FieldAccessExpression(field_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldAccessExpression.
- def exitFieldAccessExpression(
- self, ctx: OpenSCENARIO2Parser.FieldAccessExpressionContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#elementAccessExpression.
- def enterElementAccessExpression(
- self, ctx: OpenSCENARIO2Parser.ElementAccessExpressionContext
- ):
- self.__node_stack.append(self.__cur_node)
- list_name = ctx.postfixExp().getText()
- index = ctx.expression().getText()
- node = ast_node.ElementAccessExpression(list_name, index)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#elementAccessExpression.
- def exitElementAccessExpression(
- self, ctx: OpenSCENARIO2Parser.ElementAccessExpressionContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeTestExpression.
- def enterTypeTestExpression(
- self, ctx: OpenSCENARIO2Parser.TypeTestExpressionContext
- ):
- self.__node_stack.append(self.__cur_node)
- object = ctx.postfixExp().getText()
- target_type = ctx.typeDeclarator().getText()
- node = ast_node.TypeTestExpression(object, target_type)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeTestExpression.
- def exitTypeTestExpression(
- self, ctx: OpenSCENARIO2Parser.TypeTestExpressionContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldAccess.
- def enterFieldAccess(self, ctx: OpenSCENARIO2Parser.FieldAccessContext):
- self.__node_stack.append(self.__cur_node)
- field_name = ctx.postfixExp().getText() + "." + ctx.fieldName().getText()
- node = ast_node.FieldAccessExpression(field_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldAccess.
- def exitFieldAccess(self, ctx: OpenSCENARIO2Parser.FieldAccessContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#primaryExp.
- def enterPrimaryExp(self, ctx: OpenSCENARIO2Parser.PrimaryExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#primaryExp.
- def exitPrimaryExp(self, ctx: OpenSCENARIO2Parser.PrimaryExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#valueExp.
- def enterValueExp(self, ctx: OpenSCENARIO2Parser.ValueExpContext):
- self.__node_stack.append(self.__cur_node)
- value = None
- node = None
- if ctx.FloatLiteral():
- value = ctx.FloatLiteral().getText()
- node = ast_node.FloatLiteral(value)
- elif ctx.BoolLiteral():
- value = ctx.BoolLiteral().getText()
- node = ast_node.BoolLiteral(value)
- elif ctx.StringLiteral():
- value = ctx.StringLiteral().getText()
- value = value.strip('"')
- node = ast_node.StringLiteral(value)
-
- if node is not None:
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#valueExp.
- def exitValueExp(self, ctx: OpenSCENARIO2Parser.ValueExpContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#listConstructor.
- def enterListConstructor(self, ctx: OpenSCENARIO2Parser.ListConstructorContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.ListExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#listConstructor.
- def exitListConstructor(self, ctx: OpenSCENARIO2Parser.ListConstructorContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#rangeConstructor.
- def enterRangeConstructor(self, ctx: OpenSCENARIO2Parser.RangeConstructorContext):
- self.__node_stack.append(self.__cur_node)
- node = ast_node.RangeExpression()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#rangeConstructor.
- def exitRangeConstructor(self, ctx: OpenSCENARIO2Parser.RangeConstructorContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#identifierReference.
- def enterIdentifierReference(
- self, ctx: OpenSCENARIO2Parser.IdentifierReferenceContext
- ):
- self.__node_stack.append(self.__cur_node)
-
- field_name = []
- scope = None
- for fn in ctx.fieldName():
- name = fn.Identifier().getText()
- if scope is None:
- if self.__current_scope.resolve(name):
- scope = self.__current_scope.resolve(name)
- else:
- msg = name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
- else:
- if issubclass(type(scope), TypedSymbol):
- if self.__current_scope.resolve(scope.type):
- scope = self.__current_scope.resolve(scope.type)
- if name in scope.symbols:
- if scope.symbols[name].value:
- scope = scope.symbols[name].value
- else:
- msg = name + ": value is None!"
- LOG_ERROR(msg, ctx.start)
- else:
- msg = name + " is not defined!"
- LOG_ERROR(msg, ctx.start)
- else:
- scope = self.__current_scope.resolve(scope)
-
- field_name.append(name)
-
- id_name = ".".join(field_name)
-
- node = ast_node.IdentifierReference(id_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#identifierReference.
- def exitIdentifierReference(
- self, ctx: OpenSCENARIO2Parser.IdentifierReferenceContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentListSpecification.
- def enterArgumentListSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentListSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentListSpecification.
- def exitArgumentListSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentListSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentSpecification.
- def enterArgumentSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentSpecificationContext
- ):
- self.__node_stack.append(self.__cur_node)
- argument_name = ctx.argumentName().getText()
- argument_type = ctx.typeDeclarator().getText()
- default_value = None
- if ctx.defaultValue():
- default_value = ctx.defaultValue().getText()
-
- scope = self.__current_scope.resolve(argument_type)
- if scope:
- pass
- elif (
- argument_type == "int"
- or argument_type == "uint"
- or argument_type == "float"
- or argument_type == "bool"
- or argument_type == "string"
- ):
- pass
- else:
- msg = "Argument Type " + argument_type + " is not defined!"
- LOG_ERROR(msg, ctx.start)
-
- argument = ArgumentSpecificationSymbol(
- argument_name, self.__current_scope, argument_type, default_value
- )
- self.__current_scope.define(argument, ctx.start)
- self.__current_scope = argument
-
- node = ast_node.Argument(argument_name, argument_type, default_value)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentSpecification.
- def exitArgumentSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentSpecificationContext
- ):
- self.__cur_node = self.__node_stack.pop()
- self.__current_scope = self.__current_scope.get_enclosing_scope()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentName.
- def enterArgumentName(self, ctx: OpenSCENARIO2Parser.ArgumentNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentName.
- def exitArgumentName(self, ctx: OpenSCENARIO2Parser.ArgumentNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentList.
- def enterArgumentList(self, ctx: OpenSCENARIO2Parser.ArgumentListContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentList.
- def exitArgumentList(self, ctx: OpenSCENARIO2Parser.ArgumentListContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#positionalArgument.
- def enterPositionalArgument(
- self, ctx: OpenSCENARIO2Parser.PositionalArgumentContext
- ):
- self.__node_stack.append(self.__cur_node)
-
- node = ast_node.PositionalArgument()
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#positionalArgument.
- def exitPositionalArgument(
- self, ctx: OpenSCENARIO2Parser.PositionalArgumentContext
- ):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#namedArgument.
- def enterNamedArgument(self, ctx: OpenSCENARIO2Parser.NamedArgumentContext):
- self.__node_stack.append(self.__cur_node)
- argument_name = ctx.argumentName().getText()
-
- node = ast_node.NamedArgument(argument_name)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#namedArgument.
- def exitNamedArgument(self, ctx: OpenSCENARIO2Parser.NamedArgumentContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#physicalLiteral.
- def enterPhysicalLiteral(self, ctx: OpenSCENARIO2Parser.PhysicalLiteralContext):
- self.__node_stack.append(self.__cur_node)
- unit_name = ctx.Identifier().getText()
- value = None
- if ctx.FloatLiteral():
- value = ctx.FloatLiteral().getText()
- else:
- value = ctx.integerLiteral().getText()
-
- scope = self.__current_scope.resolve(unit_name)
- if scope and isinstance(scope, UnitSymbol):
- pass
- else:
- msg = "Unit " + unit_name + " is not defined!"
- LOG_WARNING(msg, ctx.start)
-
- node = ast_node.PhysicalLiteral(unit_name, value)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- if ctx.FloatLiteral():
- self.__node_stack.append(self.__cur_node)
- float_value = ctx.FloatLiteral().getText()
- value_node = ast_node.FloatLiteral(float_value)
- value_node.set_loc(ctx.start.line, ctx.start.column)
- value_node.set_scope(self.__current_scope)
- node.set_children(value_node)
- self.__cur_node = self.__node_stack.pop()
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#physicalLiteral.
- def exitPhysicalLiteral(self, ctx: OpenSCENARIO2Parser.PhysicalLiteralContext):
- self.__cur_node = self.__node_stack.pop()
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#integerLiteral.
- def enterIntegerLiteral(self, ctx: OpenSCENARIO2Parser.IntegerLiteralContext):
- self.__node_stack.append(self.__cur_node)
- value = None
- type = "uint"
- if ctx.UintLiteral():
- value = ctx.UintLiteral().getText()
- type = "uint"
- elif ctx.HexUintLiteral():
- value = ctx.HexUintLiteral().getText()
- type = "hex"
- elif ctx.IntLiteral():
- value = ctx.IntLiteral().getText()
- type = "int"
- else: # only the above three types of integer literal
- pass
-
- node = ast_node.IntegerLiteral(type, value)
- node.set_loc(ctx.start.line, ctx.start.column)
- node.set_scope(self.__current_scope)
-
- self.__cur_node.set_children(node)
- self.__cur_node = node
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#integerLiteral.
- def exitIntegerLiteral(self, ctx: OpenSCENARIO2Parser.IntegerLiteralContext):
- self.__cur_node = self.__node_stack.pop()
-
-
-del OpenSCENARIO2Parser
diff --git a/srunner/osc2/ast_manager/ast_listener.py b/srunner/osc2/ast_manager/ast_listener.py
deleted file mode 100644
index 0407981..0000000
--- a/srunner/osc2/ast_manager/ast_listener.py
+++ /dev/null
@@ -1,424 +0,0 @@
-import srunner.osc2.ast_manager.ast_node as ast_node
-from srunner.osc2.ast_manager.ast_node import AST
-
-
-class ASTListener:
- def enter_compilation_unit(self, node: ast_node.CompilationUnit):
- pass
-
- def exit_compilation_unit(self, node: ast_node.CompilationUnit):
- pass
-
- def enter_physical_type_declaration(self, node: ast_node.PhysicalTypeDeclaration):
- pass
-
- def exit_physical_type_declaration(self, node: ast_node.PhysicalTypeDeclaration):
- pass
-
- def enter_unit_declaration(self, node: ast_node.UnitDeclaration):
- pass
-
- def exit_unit_declaration(self, node: ast_node.UnitDeclaration):
- pass
-
- def enter_si_base_exponent(self, node: ast_node.SIBaseExponent):
- pass
-
- def exit_si_base_exponent(self, node: ast_node.SIBaseExponent):
- pass
-
- def enter_enum_declaration(self, node: ast_node.EnumDeclaration):
- pass
-
- def exit_enum_declaration(self, node: ast_node.EnumDeclaration):
- pass
-
- def enter_enum_member_decl(self, node: ast_node.EnumMemberDecl):
- pass
-
- def exit_enum_member_decl(self, node: ast_node.EnumMemberDecl):
- pass
-
- def enter_enum_value_reference(self, node: ast_node.EnumValueReference):
- pass
-
- def exit_enum_value_reference(self, node: ast_node.EnumValueReference):
- pass
-
- def enter_inherts_condition(self, node: ast_node.InheritsCondition):
- pass
-
- def exit_inherts_condition(self, node: ast_node.InheritsCondition):
- pass
-
- def enter_struct_declaration(self, node: ast_node.StructDeclaration):
- pass
-
- def exit_struct_declaration(self, node: ast_node.StructDeclaration):
- pass
-
- def enter_struct_inherts(self, node: ast_node.StructInherts):
- pass
-
- def exit_struct_inherts(self, node: ast_node.StructInherts):
- pass
-
- def enter_actor_declaration(self, node: ast_node.ActorDeclaration):
- pass
-
- def exit_actor_declaration(self, node: ast_node.ActorDeclaration):
- pass
-
- def enter_actor_inherts(self, node: ast_node.ActorInherts):
- pass
-
- def exit_actor_inherts(self, node: ast_node.ActorInherts):
- pass
-
- def enter_scenario_declaration(self, node: ast_node.ScenarioDeclaration):
- pass
-
- def exit_scenario_declaration(self, node: ast_node.ScenarioDeclaration):
- pass
-
- def enter_scenario_inherts(self, node: ast_node.ScenarioInherts):
- pass
-
- def exit_scenario_inherts(self, node: ast_node.ScenarioInherts):
- pass
-
- def enter_action_declaration(self, node: ast_node.ActionDeclaration):
- pass
-
- def exit_action_declaration(self, node: ast_node.ActionDeclaration):
- pass
-
- def enter_action_inherts(self, node: ast_node.ActionInherts):
- pass
-
- def exit_action_inherts(self, node: ast_node.ActionInherts):
- pass
-
- def enter_modifier_declaration(self, node: ast_node.ModifierDeclaration):
- pass
-
- def exit_modifier_declaration(self, node: ast_node.ModifierDeclaration):
- pass
-
- def enter_enum_type_extension(self, node: ast_node.EnumTypeExtension):
- pass
-
- def exit_enum_type_extension(self, node: ast_node.EnumTypeExtension):
- pass
-
- def enter_structured_type_extension(self, node: ast_node.StructuredTypeExtension):
- pass
-
- def exit_structured_type_extension(self, node: ast_node.StructuredTypeExtension):
- pass
-
- def enter_global_parameter_declaration(
- self, node: ast_node.GlobalParameterDeclaration
- ):
- pass
-
- def exit_global_parameter_declaration(
- self, node: ast_node.GlobalParameterDeclaration
- ):
- pass
-
- def enter_parameter_declaration(self, node: ast_node.GlobalParameterDeclaration):
- pass
-
- def exit_parameter_declaration(self, node: ast_node.GlobalParameterDeclaration):
- pass
-
- def enter_parameter_reference(self, node: ast_node.ParameterReference):
- pass
-
- def exit_parameter_reference(self, node: ast_node.ParameterReference):
- pass
-
- def enter_variable_declaration(self, node: ast_node.VariableDeclaration):
- pass
-
- def exit_variable_declaration(self, node: ast_node.VariableDeclaration):
- pass
-
- def enter_event_declaration(self, node: ast_node.EventDeclaration):
- pass
-
- def exit_event_declaration(self, node: ast_node.EventDeclaration):
- pass
-
- def enter_event_reference(self, node: ast_node.EventReference):
- pass
-
- def exit_event_reference(self, node: ast_node.EventReference):
- pass
-
- def enter_event_field_declaration(self, node: ast_node.EventFieldDecl):
- pass
-
- def exit_event_field_declaration(self, node: ast_node.EventFieldDecl):
- pass
-
- def enter_event_condition(self, node: ast_node.EventCondition):
- pass
-
- def exit_event_condition(self, node: ast_node.EventCondition):
- pass
-
- def enter_method_declaration(self, node: ast_node.MethodDeclaration):
- pass
-
- def exit_method_declaration(self, node: ast_node.MethodDeclaration):
- pass
-
- def enter_method_body(self, node: ast_node.MethodBody):
- pass
-
- def exit_method_body(self, node: ast_node.MethodBody):
- pass
-
- def enter_cover_declaration(self, node: ast_node.coverDeclaration):
- pass
-
- def exit_cover_declaration(self, node: ast_node.coverDeclaration):
- pass
-
- def enter_record_declaration(self, node: ast_node.recordDeclaration):
- pass
-
- def exit_record_declaration(self, node: ast_node.recordDeclaration):
- pass
-
- def enter_argument(self, node: ast_node.Argument):
- pass
-
- def exit_argument(self, node: ast_node.Argument):
- pass
-
- def enter_named_argument(self, node: ast_node.NamedArgument):
- pass
-
- def exit_named_argument(self, node: ast_node.NamedArgument):
- pass
-
- def enter_positional_argument(self, node: ast_node.PositionalArgument):
- pass
-
- def exit_positional_argument(self, node: ast_node.PositionalArgument):
- pass
-
- def enter_variable_declaration(self, node: ast_node.VariableDeclaration):
- pass
-
- def exit_variable_declaration(self, node: ast_node.VariableDeclaration):
- pass
-
- def enter_keep_constraint_declaration(
- self, node: ast_node.KeepConstraintDeclaration
- ):
- pass
-
- def exit_keep_constraint_declaration(
- self, node: ast_node.KeepConstraintDeclaration
- ):
- pass
-
- def enter_remove_default_declaration(self, node: ast_node.RemoveDefaultDeclaration):
- pass
-
- def exit_remove_default_declaration(self, node: ast_node.RemoveDefaultDeclaration):
- pass
-
- def enter_on_directive(self, node: ast_node.OnDirective):
- pass
-
- def exit_on_directive(self, node: ast_node.OnDirective):
- pass
-
- def enter_do_directive(self, node: ast_node.DoDirective):
- pass
-
- def exit_do_directive(self, node: ast_node.DoDirective):
- pass
-
- def enter_do_member(self, node: ast_node.DoMember):
- pass
-
- def exit_do_member(self, node: ast_node.DoMember):
- pass
-
- def enter_wait_directive(self, node: ast_node.WaitDirective):
- pass
-
- def exit_wait_directive(self, node: ast_node.WaitDirective):
- pass
-
- def enter_emit_directive(self, node: ast_node.EmitDirective):
- pass
-
- def exit_emit_directive(self, node: ast_node.EmitDirective):
- pass
-
- def enter_call_directive(self, node: ast_node.CallDirective):
- pass
-
- def exit_call_directive(self, node: ast_node.CallDirective):
- pass
-
- def enter_until_directive(self, node: ast_node.UntilDirective):
- pass
-
- def exit_until_directive(self, node: ast_node.UntilDirective):
- pass
-
- def enter_behavior_invocation(self, node: ast_node.BehaviorInvocation):
- pass
-
- def exit_behavior_invocation(self, node: ast_node.BehaviorInvocation):
- pass
-
- def enter_modifier_invocation(self, node: ast_node.ModifierInvocation):
- pass
-
- def exit_modifier_invocation(self, node: ast_node.ModifierInvocation):
- pass
-
- def enter_rise_expression(self, node: ast_node.RiseExpression):
- pass
-
- def exit_rise_expression(self, node: ast_node.RiseExpression):
- pass
-
- def enter_fall_expression(self, node: ast_node.FallExpression):
- pass
-
- def exit_fall_expression(self, node: ast_node.FallExpression):
- pass
-
- def enter_elapsed_expression(self, node: ast_node.ElapsedExpression):
- pass
-
- def exit_elapsed_expression(self, node: ast_node.ElapsedExpression):
- pass
-
- def enter_every_expression(self, node: ast_node.EveryExpression):
- pass
-
- def exit_every_expression(self, node: ast_node.EveryExpression):
- pass
-
- def enter_sample_expression(self, node: ast_node.SampleExpression):
- pass
-
- def exit_sample_expression(self, node: ast_node.SampleExpression):
- pass
-
- def enter_cast_expression(self, node: ast_node.CastExpression):
- pass
-
- def exit_cast_expression(self, node: ast_node.CastExpression):
- pass
-
- def enter_type_test_expression(self, node: ast_node.TypeTestExpression):
- pass
-
- def exit_type_test_expression(self, node: ast_node.TypeTestExpression):
- pass
-
- def enter_element_access_expression(self, node: ast_node.ElementAccessExpression):
- pass
-
- def exit_element_access_expression(self, node: ast_node.ElementAccessExpression):
- pass
-
- def enter_function_application_expression(
- self, node: ast_node.FunctionApplicationExpression
- ):
- pass
-
- def exit_function_application_expression(
- self, node: ast_node.FunctionApplicationExpression
- ):
- pass
-
- def enter_binary_expression(self, node: ast_node.BinaryExpression):
- pass
-
- def exit_binary_expression(self, node: ast_node.BinaryExpression):
- pass
-
- def enter_unary_expression(self, node: ast_node.UnaryExpression):
- pass
-
- def exit_unary_expression(self, node: ast_node.UnaryExpression):
- pass
-
- def enter_ternary_expression(self, node: ast_node.TernaryExpression):
- pass
-
- def exit_ternary_expression(self, node: ast_node.TernaryExpression):
- pass
-
- def enter_list_expression(self, node: ast_node.ListExpression):
- pass
-
- def exit_list_expression(self, node: ast_node.ListExpression):
- pass
-
- def enter_range_expression(self, node: ast_node.RangeExpression):
- pass
-
- def exit_range_expression(self, node: ast_node.RangeExpression):
- pass
-
- def enter_physical_literal(self, node: ast_node.PhysicalLiteral):
- pass
-
- def exit_physical_literal(self, node: ast_node.PhysicalLiteral):
- pass
-
- def enter_integer_literal(self, node: ast_node.IntegerLiteral):
- pass
-
- def exit_integer_literal(self, node: ast_node.IntegerLiteral):
- pass
-
- def enter_float_literal(self, node: ast_node.FloatLiteral):
- pass
-
- def exit_float_literal(self, node: ast_node.FloatLiteral):
- pass
-
- def enter_bool_literal(self, node: ast_node.BoolLiteral):
- pass
-
- def exit_bool_literal(self, node: ast_node.BoolLiteral):
- pass
-
- def enter_string_literal(self, node: ast_node.StringLiteral):
- pass
-
- def exit_string_literal(self, node: ast_node.StringLiteral):
- pass
-
- def enter_type(self, node: ast_node.Type):
- pass
-
- def exit_type(self, node: ast_node.Type):
- pass
-
- def enter_identifier(self, node: ast_node.Identifier):
- pass
-
- def exit_identifier(self, node: ast_node.Identifier):
- pass
-
- def enter_identifier_reference(self, node: ast_node.IdentifierReference):
- pass
-
- def exit_identifier_reference(self, node: ast_node.IdentifierReference):
- pass
diff --git a/srunner/osc2/ast_manager/ast_node.py b/srunner/osc2/ast_manager/ast_node.py
deleted file mode 100644
index 75b97dd..0000000
--- a/srunner/osc2/ast_manager/ast_node.py
+++ /dev/null
@@ -1,1630 +0,0 @@
-from typing import List
-
-
-class AST(object):
- def __init__(self):
- # line and column record the source location of the ast node
- self.__line = None
- self.__column = None
- self.__scope = None # The scope of the record node
- self.__children = [] # child node
-
- def get_child_count(self):
- return len(self.__children)
-
- def get_children(self):
- if self.__children is not None:
- for child in self.__children:
- yield child
-
- def get_child(self, i):
- return self.__children[i]
-
- def set_children(self, *childs):
- for child in childs:
- if child is not None:
- if isinstance(child, List):
- for ch in child:
- self.__children.append(ch)
- else:
- self.__children.append(child)
-
- def set_loc(self, line, column):
- self.__line = line
- self.__column = column
-
- def get_loc(self):
- return self.__line, self.__column
-
- def set_scope(self, scope):
- self.__scope = scope
-
- def get_scope(self):
- return self.__scope
-
- def accept(self, visitor):
- pass
-
- def enter_node(self, listener):
- pass
-
- def exit_node(self, listener):
- pass
-
- def __iter__(self):
- self.iter = iter(self.__children)
- return self.iter
-
- def __next__(self):
- return next(self.iter)
-
- def __str__(self) -> str:
- return self.__class__.__name__
-
-
-# CompilationUnit
-class CompilationUnit(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_compilation_unit"):
- listener.enter_compilation_unit(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_compilation_unit"):
- listener.exit_compilation_unit(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_compilation_unit"):
- return visitor.visit_compilation_unit(self)
- else:
- return visitor.visit_children(self)
-
-
-# Declaration
-class Declaration(AST):
- pass
-
-
-# Declaration
-class Expression(AST):
- pass
-
-
-class PhysicalTypeDeclaration(Declaration):
- def __init__(self, type_name):
- super().__init__()
- self.type_name = type_name
- self.set_children(type_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_physical_type_declaration"):
- listener.enter_physical_type_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_physical_type_declaration"):
- listener.exit_physical_type_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_physical_type_declaration"):
- return visitor.visit_physical_type_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class UnitDeclaration(Declaration):
- def __init__(self, unit_name, physical_name):
- super().__init__()
- self.unit_name = unit_name
- self.physical_name = physical_name
- self.set_children(unit_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_unit_declaration"):
- listener.enter_unit_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_unit_declaration"):
- listener.exit_unit_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_unit_declaration"):
- return visitor.visit_unit_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class SIBaseExponent(AST):
- def __init__(self, unit_name):
- super().__init__()
- self.unit_name = unit_name
- self.set_children(unit_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_si_base_exponent"):
- listener.enter_si_base_exponent(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_si_base_exponent"):
- listener.exit_si_base_exponent(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_si_base_exponent"):
- return visitor.visit_si_base_exponent(self)
- else:
- return visitor.visit_children(self)
-
-
-class EnumDeclaration(Declaration):
- def __init__(self, enum_name):
- super().__init__()
- self.enum_name = enum_name
- self.set_children(enum_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_enum_declaration"):
- listener.enter_enum_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_enum_declaration"):
- listener.exit_enum_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_enum_declaration"):
- return visitor.visit_enum_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class EnumMemberDecl(Declaration):
- def __init__(self, enum_member_name, num_member_value):
- super().__init__()
- self.enum_member_name = enum_member_name
- self.num_member_value = num_member_value
- self.set_children(enum_member_name, num_member_value)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_enum_member_decl"):
- listener.enter_enum_member_decl(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_enum_member_decl"):
- listener.exit_enum_member_decl(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_enum_member_decl"):
- return visitor.visit_enum_member_decl(self)
- else:
- return visitor.visit_children(self)
-
-
-class EnumValueReference(AST):
- def __init__(self, enum_name, enum_member_name):
- super().__init__()
- self.enum_name = enum_name
- self.enum_member_name = enum_member_name
- self.set_children(enum_name, enum_member_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_enum_value_reference"):
- listener.enter_enum_value_reference(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_enum_value_reference"):
- listener.exit_enum_value_reference(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_enum_value_reference"):
- return visitor.visit_enum_value_reference(self)
- else:
- return visitor.visit_children(self)
-
-
-class InheritsCondition(AST):
- def __init__(self, field_name, bool_literal):
- super().__init__()
- self.field_name = field_name
- self.set_children(field_name, bool_literal)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_inherits_condition"):
- listener.enter_inherits_condition(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_inherits_condition"):
- listener.exit_inherits_condition(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_inherits_condition"):
- return visitor.visit_inherits_condition(self)
- else:
- return visitor.visit_children(self)
-
-
-class StructDeclaration(Declaration):
- def __init__(self, struct_name):
- super().__init__()
- self.struct_name = struct_name
- self.set_children(struct_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_struct_declaration"):
- listener.enter_struct_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_struct_declaration"):
- listener.exit_struct_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_struct_declaration"):
- return visitor.visit_struct_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class StructInherts(AST):
- def __init__(self, struct_name):
- super().__init__()
- self.struct_name = struct_name
- self.set_children(struct_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_struct_inherts"):
- listener.enter_struct_inherts(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_struct_inherts"):
- listener.exit_struct_inherts(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_struct_inherts"):
- return visitor.visit_struct_inherts(self)
- else:
- return visitor.visit_children(self)
-
-
-class ActorDeclaration(Declaration):
- def __init__(self, actor_name):
- super().__init__()
- self.actor_name = actor_name
- self.set_children(actor_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_actor_declaration"):
- listener.enter_actor_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_actor_declaration"):
- listener.exit_actor_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_actor_declaration"):
- return visitor.visit_actor_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class ActorInherts(AST):
- def __init__(self, actor_name):
- super().__init__()
- self.actor_name = actor_name
- self.set_children(actor_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_actor_inherts"):
- listener.enter_actor_inherts(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_actor_inherts"):
- listener.exit_actor_inherts(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_actor_inherts"):
- return visitor.visit_actor_inherts(self)
- else:
- return visitor.visit_children(self)
-
-
-class ScenarioDeclaration(Declaration):
- def __init__(self, qualified_behavior_name):
- super().__init__()
- self.qualified_behavior_name = qualified_behavior_name
- self.set_children(qualified_behavior_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_scenario_declaration"):
- listener.enter_scenario_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_scenario_declaration"):
- listener.exit_scenario_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_scenario_declaration"):
- return visitor.visit_scenario_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class ScenarioInherts(AST):
- def __init__(self, qualified_behavior_name):
- super().__init__()
- self.qualified_behavior_name = qualified_behavior_name
- self.set_children(qualified_behavior_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_scenario_inherts"):
- listener.enter_scenario_inherts(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_scenario_inherts"):
- listener.exit_scenario_inherts(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_scenario_inherts"):
- return visitor.visit_scenario_inherts(self)
- else:
- return visitor.visit_children(self)
-
-
-class ActionDeclaration(Declaration):
- def __init__(self, qualified_behavior_name):
- super().__init__()
- self.qualified_behavior_name = qualified_behavior_name
- self.set_children(qualified_behavior_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_action_declaration"):
- listener.enter_action_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_action_declaration"):
- listener.exit_action_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_action_declaration"):
- return visitor.visit_action_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class ActionInherts(AST):
- def __init__(self, qualified_behavior_name):
- super().__init__()
- self.qualified_behavior_name = qualified_behavior_name
- self.set_children(qualified_behavior_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_action_inherts"):
- listener.enter_action_inherts(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_action_inherts"):
- listener.exit_action_inherts(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_action_inherts"):
- return visitor.visit_action_inherts(self)
- else:
- return visitor.visit_children(self)
-
-
-class ModifierDeclaration(Declaration):
- def __init__(self, actor_name, modifier_name):
- super().__init__()
- self.actor_name = actor_name
- self.modifier_name = modifier_name
- if actor_name is not None:
- self.set_children(actor_name, modifier_name)
- else:
- self.set_children(modifier_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_modifier_declaration"):
- listener.enter_modifier_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_modifier_declaration"):
- listener.exit_modifier_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_modifier_declaration"):
- return visitor.visit_modifier_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class EnumTypeExtension(Declaration):
- def __init__(self, enum_name):
- super().__init__()
- self.enum_name = enum_name
- self.set_children(enum_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_enum_type_extension"):
- listener.enter_enum_type_extension(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_enum_type_extension"):
- listener.exit_enum_type_extension(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_enum_type_extension"):
- return visitor.visit_enum_type_extension(self)
- else:
- return visitor.visit_children(self)
-
-
-class StructuredTypeExtension(Declaration):
- def __init__(self, type_name, qualified_behavior_name):
- super().__init__()
- self.type_name = type_name
- self.qualified_behavior_name = qualified_behavior_name
- if type_name is not None:
- self.set_children(type_name)
- else:
- self.set_children(qualified_behavior_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_structured_type_extension"):
- listener.enter_structured_type_extension(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_structured_type_extension"):
- listener.exit_structured_type_extension(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_structured_type_extension"):
- return visitor.visit_structured_type_extension(self)
- else:
- return visitor.visit_children(self)
-
-
-class GlobalParameterDeclaration(Declaration):
- """
- children stores name, type, and default values, where default values are not required
- """
-
- def __init__(self, field_name, field_type):
- super().__init__()
- self.field_name = field_name
- self.field_type = field_type
- self.set_children(field_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_global_parameter_declaration"):
- listener.enter_global_parameter_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_global_parameter_declaration"):
- listener.exit_global_parameter_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_global_parameter_declaration"):
- return visitor.visit_global_parameter_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class ParameterDeclaration(Declaration):
- def __init__(self, field_name, field_type):
- super().__init__()
- self.field_name = field_name
- self.field_type = field_type
- self.set_children(field_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_parameter_declaration"):
- listener.enter_parameter_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_parameter_declaration"):
- listener.exit_parameter_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_parameter_declaration"):
- return visitor.visit_parameter_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class ParameterReference(AST):
- def __init__(self, field_name, field_access):
- super().__init__()
- self.field_name = field_name
- self.field_access = field_access
- self.set_children(field_name, field_access)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_parameter_reference"):
- listener.enter_parameter_reference(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_parameter_reference"):
- listener.exit_parameter_reference(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_parameter_reference"):
- return visitor.visit_parameter_reference(self)
- else:
- return visitor.visit_children(self)
-
-
-class VariableDeclaration(Declaration):
- def __init__(self, field_name, field_type):
- super().__init__()
- self.field_name = field_name
- self.field_type = field_type
- self.set_children(field_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_variable_declaration"):
- listener.enter_variable_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_variable_declaration"):
- listener.exit_variable_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_variable_declaration"):
- return visitor.visit_variable_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class EventDeclaration(Declaration):
- def __init__(self, event_name):
- super().__init__()
- self.field_name = event_name
- self.set_children(event_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_event_declaration"):
- listener.enter_event_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_event_declaration"):
- listener.exit_event_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_event_declaration"):
- return visitor.visit_event_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class EventReference(AST):
- def __init__(self, event_path):
- super().__init__()
- self.event_path = event_path
- self.set_children(event_path)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_event_reference"):
- listener.enter_event_reference(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_event_reference"):
- listener.exit_event_reference(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_event_reference"):
- return visitor.visit_event_reference(self)
- else:
- return visitor.visit_children(self)
-
-
-class EventFieldDecl(AST):
- def __init__(self, event_field_name):
- super().__init__()
- self.event_field_name = event_field_name
- self.set_children(event_field_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_event_field_declaration"):
- listener.enter_event_field_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_event_field_declaration"):
- listener.exit_event_field_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_event_field_declaration"):
- return visitor.visit_event_field_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class EventCondition(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_event_condition"):
- listener.enter_event_condition(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_event_condition"):
- listener.exit_event_condition(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_event_condition"):
- return visitor.visit_event_condition(self)
- else:
- return visitor.visit_children(self)
-
-
-class MethodDeclaration(Declaration):
- def __init__(self, method_name, return_type):
- super().__init__()
- self.method_name = method_name
- self.return_type = return_type
- self.set_children(method_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_method_declaration"):
- listener.enter_method_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_method_declaration"):
- listener.exit_method_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_method_declaration"):
- return visitor.visit_method_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class MethodBody(AST):
- """
- There are three types of method, expression, undefined, external
- In the children of this node, the type and the concrete method body are stored, in turn
- """
-
- def __init__(self, qualifier, type, external_name):
- super().__init__()
- self.qualifier = qualifier
- self.type = type
- self.external_name = external_name
- self.set_children(qualifier, external_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_method_body"):
- listener.enter_method_body(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_method_body"):
- listener.exit_method_body(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_method_body"):
- return visitor.visit_method_body(self)
- else:
- return visitor.visit_children(self)
-
-
-class coverDeclaration(Declaration):
- """
- When override a 'cover', target name is none,
- but must have an argument with name 'override'.
- """
-
- def __init__(self, target_name):
- super().__init__()
- self.target_name = target_name
- self.set_children(target_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_cover_declaration"):
- listener.enter_cover_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_cover_declaration"):
- listener.exit_cover_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_cover_declaration"):
- return visitor.visit_cover_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class recordDeclaration(Declaration):
- """
- When override a 'record', target name is none,
- but must have an argument with name 'override'.
- """
-
- def __init__(self, target_name):
- super().__init__()
- self.target_name = target_name
- self.set_children(target_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_record_declaration"):
- listener.enter_record_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_record_declaration"):
- listener.exit_record_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_record_declaration"):
- return visitor.visit_record_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class Argument(AST):
- def __init__(self, argument_name, argument_type, default_value):
- super().__init__()
- self.argument_name = argument_name
- self.argument_type = argument_type
- self.default_value = default_value
- if default_value is not None:
- self.set_children(argument_name)
- else:
- self.set_children(argument_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_argument"):
- listener.enter_argument(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_argument"):
- listener.exit_argument(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_argument"):
- return visitor.visit_argument(self)
- else:
- return visitor.visit_children(self)
-
-
-class NamedArgument(AST):
- def __init__(self, argument_name):
- super().__init__()
- self.argument_name = argument_name
- self.set_children(argument_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_named_argument"):
- listener.enter_named_argument(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_named_argument"):
- listener.exit_named_argument(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_named_argument"):
- return visitor.visit_named_argument(self)
- else:
- return visitor.visit_children(self)
-
-
-class PositionalArgument(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_positional_argument"):
- listener.enter_positional_argument(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_positional_argument"):
- listener.exit_positional_argument(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_positional_argument"):
- return visitor.visit_positional_argument(self)
- else:
- return visitor.visit_children(self)
-
-
-class VariableDeclaration(Declaration):
- """
- 'var' fieldName (',' fieldName)* ':' typeDeclarator ('=' (sampleExpression | valueExp) )? NEWLINE;
- """
-
- def __init__(self, field_name, field_type):
- super().__init__()
- self.field_name = field_name
- self.field_type = field_type
- self.set_children(field_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_variable_declaration"):
- listener.enter_variable_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_variable_declaration"):
- listener.exit_variable_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_variable_declaration"):
- return visitor.visit_variable_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class KeepConstraintDeclaration(Declaration):
- def __init__(self, constraint_qualifier):
- super().__init__()
- self.constraint_qualifier = constraint_qualifier
- self.set_children(constraint_qualifier)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_keep_constraint_declaration"):
- listener.enter_keep_constraint_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_keep_constraint_declaration"):
- listener.exit_keep_constraint_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_keep_constraint_declaration"):
- return visitor.visit_keep_constraint_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class RemoveDefaultDeclaration(Declaration):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_remove_default_declaration"):
- listener.enter_remove_default_declaration(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_remove_default_declaration"):
- listener.exit_remove_default_declaration(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_remove_default_declaration"):
- return visitor.visit_remove_default_declaration(self)
- else:
- return visitor.visit_children(self)
-
-
-class OnDirective(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_on_directive"):
- listener.enter_on_directive(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_on_directive"):
- listener.exit_on_directive(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_on_directive"):
- return visitor.visit_on_directive(self)
- else:
- return visitor.visit_children(self)
-
-
-class DoDirective(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_do_directive"):
- listener.enter_do_directive(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_do_directive"):
- listener.exit_do_directive(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_do_directive"):
- return visitor.visit_do_directive(self)
- else:
- return visitor.visit_children(self)
-
-
-class DoMember(AST):
- def __init__(self, label_name, composition_operator):
- super().__init__()
- self.label_name = label_name
- self.composition_operator = composition_operator
- self.set_children(label_name, composition_operator)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_do_member"):
- listener.enter_do_member(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_do_member"):
- listener.exit_do_member(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_do_member"):
- return visitor.visit_do_member(self)
- else:
- return visitor.visit_children(self)
-
-
-class WaitDirective(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_wait_directive"):
- listener.enter_wait_directive(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_wait_directive"):
- listener.exit_wait_directive(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_wait_directive"):
- return visitor.visit_wait_directive(self)
- else:
- return visitor.visit_children(self)
-
-
-class EmitDirective(AST):
- def __init__(self, event_name):
- super().__init__()
- self.event_name = event_name
- self.set_children(event_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_emit_directive"):
- listener.enter_emit_directive(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_emit_directive"):
- listener.exit_emit_directive(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_emit_directive"):
- return visitor.visit_emit_directive(self)
- else:
- return visitor.visit_children(self)
-
-
-class CallDirective(AST):
- def __init__(self, method_name):
- super().__init__()
- self.method_name = method_name
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_call_directive"):
- listener.enter_call_directive(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_call_directive"):
- listener.exit_call_directive(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_call_directive"):
- return visitor.visit_call_directive(self)
- else:
- return visitor.visit_children(self)
-
-
-class UntilDirective(AST):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_until_directive"):
- listener.enter_until_directive(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_until_directive"):
- listener.exit_until_directive(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_until_directive"):
- return visitor.visit_until_directive(self)
- else:
- return visitor.visit_children(self)
-
-
-class BehaviorInvocation(AST):
- def __init__(self, actor, behavior_name):
- super().__init__()
- self.actor = actor
- self.behavior_name = behavior_name
- self.set_children(actor, behavior_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_behavior_invocation"):
- listener.enter_behavior_invocation(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_behavior_invocation"):
- listener.exit_behavior_invocation(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_behavior_invocation"):
- return visitor.visit_behavior_invocation(self)
- else:
- return visitor.visit_children(self)
-
-
-class ModifierInvocation(AST):
- def __init__(self, actor, modifier_name):
- super().__init__()
- self.actor = actor
- self.modifier_name = modifier_name
- self.set_children(actor, modifier_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_modifier_invocation"):
- listener.enter_modifier_invocation(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_modifier_invocation"):
- listener.exit_modifier_invocation(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_modifier_invocation"):
- return visitor.visit_modifier_invocation(self)
- else:
- return visitor.visit_children(self)
-
-
-class RiseExpression(Expression):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_rise_expression"):
- listener.enter_rise_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_rise_expression"):
- listener.exit_rise_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_rise_expression"):
- return visitor.visit_rise_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class FallExpression(Expression):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_fall_expression"):
- listener.enter_rise_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_fall_expression"):
- listener.exit_fall_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_fall_expression"):
- return visitor.visit_fall_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class ElapsedExpression(Expression):
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_elapsed_expression"):
- listener.enter_rise_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_elapsed_expression"):
- listener.exit_fall_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_elapsed_expression"):
- return visitor.visit_fall_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class EveryExpression(Expression):
- """
- In every expression, there are at most two children among its children,
- The first child is the primary expression and the second child is the offset expression
- 'every' OPEN_PAREN durationExpression (',' 'offset' ':' durationExpression)? CLOSE_PAREN;
- """
-
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_every_expression"):
- listener.enter_every_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_every_expression"):
- listener.exit_every_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_every_expression"):
- return visitor.visit_every_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class SampleExpression(Expression):
- """
- In the sample expression, there are at most three children among its children,
- 'sample' OPEN_PAREN expression ',' eventSpecification (',' defaultValue)? CLOSE_PAREN;
- """
-
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_sample_expression"):
- listener.enter_sample_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_sample_expression"):
- listener.exit_sample_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_sample_expression"):
- return visitor.visit_sample_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class CastExpression(Expression):
- """ """
-
- def __init__(self, object, target_type):
- super().__init__()
- self.object = object
- self.target_type = target_type
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_cast_expression"):
- listener.enter_cast_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_cast_expression"):
- listener.exit_cast_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_cast_expression"):
- return visitor.visit_cast_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class TypeTestExpression(Expression):
- """ """
-
- def __init__(self, object, target_type):
- super().__init__()
- self.object = object
- self.target_type = target_type
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_type_test_expression"):
- listener.enter_type_test_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_type_test_expression"):
- listener.exit_type_test_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_type_test_expression"):
- return visitor.visit_type_test_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class ElementAccessExpression(Expression):
- """ """
-
- def __init__(self, list_name, index):
- super().__init__()
- self.list_name = list_name
- self.index = index
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_element_access_expression"):
- listener.enter_element_access_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_element_access_expression"):
- listener.exit_element_access_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_element_access_expression"):
- return visitor.visit_element_access_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class FunctionApplicationExpression(Expression):
- """
- In a functionApplication expression, store the method name and its arguments in the children.
- Method names are represented by identifier nodes
- """
-
- def __init__(self, func_name):
- super().__init__()
- self.func_name = func_name
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_function_application_expression"):
- listener.enter_function_application_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_function_application_expression"):
- listener.exit_function_application_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_function_application_expression"):
- return visitor.visit_function_application_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class FieldAccessExpression(Expression):
- def __init__(self, field_name):
- super().__init__()
- self.field_name = field_name
- self.set_children(field_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_field_access_expression"):
- listener.enter_field_access_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_field_access_expression"):
- listener.exit_field_access_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_field_access_expression"):
- return visitor.visit_field_access_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class BinaryExpression(Expression):
- """
- In the children of this node, the operator, left expression, and right expression are stored, in order
- """
-
- def __init__(self, operator):
- super().__init__()
- self.operator = operator
- self.set_children(operator)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_binary_expression"):
- listener.enter_binary_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_binary_expression"):
- listener.exit_binary_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_binary_expression"):
- return visitor.visit_binary_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class UnaryExpression(Expression):
- """
- In the children of this node, operators are stored, followed by expressions
- """
-
- def __init__(self, operator):
- super().__init__()
- self.operator = operator
- self.set_children(operator)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_unary_expression"):
- listener.enter_unary_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_unary_expression"):
- listener.exit_unary_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_unary_expression"):
- return visitor.visit_unary_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class TernaryExpression(Expression):
- """
- In the children of this node, the conditional expression is stored,
- followed by the left expression, and then the right expression
- """
-
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_ternary_expression"):
- listener.enter_ternary_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_ternary_expression"):
- listener.exit_ternary_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_ternary_expression"):
- return visitor.visit_ternary_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class LogicalExpression(Expression):
- """
- In logical expressions, for the same operator, such as a=>b=>c, the operands of the expression are placed in children.
- It is not divided into multiple binary expressions like binary expressions
- """
-
- def __init__(self, operator):
- super().__init__()
- self.operator = operator
- self.set_children(operator)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_logical_expression"):
- listener.enter_logical_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_logical_expression"):
- listener.exit_logical_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_logical_expression"):
- return visitor.visit_logical_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class RelationExpression(Expression):
- def __init__(self, operator):
- super().__init__()
- self.operator = operator
- self.set_children(operator)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_relation_expression"):
- listener.enter_relation_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_relation_expression"):
- listener.exit_relation_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_relation_expression"):
- return visitor.visit_relation_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class ListExpression(Expression):
- """
- In a list expression, each child node must be of the same type
- """
-
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_list_expression"):
- listener.enter_list_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_list_expression"):
- listener.exit_list_literal(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_list_expression"):
- return visitor.visit_list_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class RangeExpression(Expression):
- """
- In a range expression, the first and second expressions are stored in the child nodes
- """
-
- def __init__(self):
- super().__init__()
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_range_expression"):
- listener.enter_range_expression(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_range_expression"):
- listener.exit_range_expression(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_range_expression"):
- return visitor.visit_range_expression(self)
- else:
- return visitor.visit_children(self)
-
-
-class PhysicalLiteral(AST):
- def __init__(self, unit_name, value):
- super().__init__()
- self.value = value
- self.unit_name = unit_name
- self.set_children(unit_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_physical_literal"):
- listener.enter_physical_literal(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_physical_literal"):
- listener.exit_physical_literal(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_physical_literal"):
- return visitor.visit_physical_literal(self)
- else:
- return visitor.visit_children(self)
-
-
-class IntegerLiteral(AST):
- def __init__(self, type, value):
- super().__init__()
- self.type = type # uint, hex, int
- self.value = value
- self.set_children(type, value)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_integer_literal"):
- listener.enter_integer_literal(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_integer_literal"):
- listener.exit_integer_literal(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_integer_literal"):
- return visitor.visit_integer_literal(self)
- else:
- return visitor.visit_children(self)
-
-
-class FloatLiteral(AST):
- def __init__(self, value):
- super().__init__()
- self.value = value
- self.set_children(value)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_float_literal"):
- listener.enter_float_literal(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_float_literal"):
- listener.exit_float_literal(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_float_literal"):
- return visitor.visit_float_literal(self)
- else:
- return visitor.visit_children(self)
-
-
-class BoolLiteral(AST):
- def __init__(self, value):
- super().__init__()
- self.value = value
- self.set_children(value)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_bool_literal"):
- listener.enter_bool_literal(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_bool_literal"):
- listener.exit_bool_literal(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_bool_literal"):
- return visitor.visit_bool_literal(self)
- else:
- return visitor.visit_children(self)
-
-
-class StringLiteral(AST):
- def __init__(self, value):
- super().__init__()
- self.value = value
- self.set_children(value)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_string_literal"):
- listener.enter_string_literal(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_string_literal"):
- listener.exit_string_literal(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_string_literal"):
- return visitor.visit_string_literal(self)
- else:
- return visitor.visit_children(self)
-
-
-class Type(AST):
- def __init__(self, type_name):
- super().__init__()
- self.type_name = type_name
- self.set_children(type_name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_type"):
- listener.enter_type(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_type"):
- listener.exit_type(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_type"):
- return visitor.visit_type(self)
- else:
- return visitor.visit_type(self)
-
-
-class Identifier(AST):
- def __init__(self, name):
- super().__init__()
- self.name = name
- self.set_children(name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_identifier"):
- listener.enter_identifier(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_identifier"):
- listener.exit_identifier(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_identifier"):
- return visitor.visit_identifier(self)
- else:
- return visitor.visit_children(self)
-
-
-class IdentifierReference(AST):
- def __init__(self, name):
- super().__init__()
- self.name = name
- self.set_children(name)
-
- def enter_node(self, listener):
- if hasattr(listener, "enter_identifier_reference"):
- listener.enter_identifier_reference(self)
-
- def exit_node(self, listener):
- if hasattr(listener, "exit_identifier_reference"):
- listener.exit_identifier_reference(self)
-
- def accept(self, visitor):
- if hasattr(visitor, "visit_identifier_reference"):
- return visitor.visit_identifier_reference(self)
- else:
- return visitor.visit_identifier_reference(self)
diff --git a/srunner/osc2/ast_manager/ast_vistor.py b/srunner/osc2/ast_manager/ast_vistor.py
deleted file mode 100644
index a0a46b2..0000000
--- a/srunner/osc2/ast_manager/ast_vistor.py
+++ /dev/null
@@ -1,248 +0,0 @@
-import ast
-
-import srunner.osc2.ast_manager.ast_node as ast_node
-from srunner.osc2.ast_manager.ast_node import AST
-from srunner.tools.osc2_helper import OSC2Helper
-
-
-class BaseVisitor(object):
- def visit(self, tree):
- return tree.accept(self)
-
- def visit_children(self, node):
- result = self.default_result()
- n = node.get_child_count()
- for i in range(n):
- if not self.should_visit_next_child(node, result):
- return result
-
- c = node.get_child(i)
- if isinstance(c, AST):
- child_result = c.accept(self)
- result = self.aggregate_result(result, child_result)
-
- return result
-
- def default_result(self):
- return []
-
- def aggregate_result(self, aggregate, next_result):
- if aggregate:
- return [aggregate, next_result]
- else:
- return next_result
-
- def should_visit_next_child(self, node, current_result):
- return True
-
-
-class ASTVisitor(BaseVisitor):
- def visit_compilation_unit(self, node: ast_node.CompilationUnit):
- return self.visit_children(node)
-
- def visit_physical_type_declaration(self, node: ast_node.PhysicalTypeDeclaration):
- return self.visit_children(node)
-
- def visit_unit_declaration(self, node: ast_node.UnitDeclaration):
- return self.visit_children(node)
-
- def visit_si_base_exponent(self, node: ast_node.SIBaseExponent):
- return self.visit_children(node)
-
- def visit_enum_declaration(self, node: ast_node.EnumDeclaration):
- return self.visit_children(node)
-
- def visit_enum_member_decl(self, node: ast_node.EnumMemberDecl):
- return self.visit_children(node)
-
- def visit_enum_value_reference(self, node: ast_node.EnumValueReference):
- return self.visit_children(node)
-
- def visit_inherts_condition(self, node: ast_node.InheritsCondition):
- return self.visit_children(node)
-
- def visit_struct_declaration(self, node: ast_node.StructDeclaration):
- return self.visit_children(node)
-
- def visit_struct_inherts(self, node: ast_node.StructInherts):
- return self.visit_children(node)
-
- def visit_actor_declaration(self, node: ast_node.ActorDeclaration):
- return self.visit_children(node)
-
- def visit_actor_inherts(self, node: ast_node.ActorInherts):
- return self.visit_children(node)
-
- def visit_scenario_declaration(self, node: ast_node.ScenarioDeclaration):
- return self.visit_children(node)
-
- def visit_scenario_inherts(self, node: ast_node.ScenarioInherts):
- return self.visit_children(node)
-
- def visit_action_declaration(self, node: ast_node.ActionDeclaration):
- return self.visit_children(node)
-
- def visit_action_inherts(self, node: ast_node.ActionInherts):
- return self.visit_children(node)
-
- def visit_modifier_declaration(self, node: ast_node.ModifierDeclaration):
- return self.visit_children(node)
-
- def visit_enum_type_extension(self, node: ast_node.EnumTypeExtension):
- return self.visit_children(node)
-
- def visit_structured_type_extension(self, node: ast_node.StructuredTypeExtension):
- return self.visit_children(node)
-
- def visit_global_parameter_declaration(
- self, node: ast_node.GlobalParameterDeclaration
- ):
- return self.visit_children(node)
-
- def visit_parameter_declaration(self, node: ast_node.ParameterDeclaration):
- return self.visit_children(node)
-
- def visit_parameter_reference(self, node: ast_node.ParameterReference):
- return self.visit_children(node)
-
- def visit_variable_declaration(self, node: ast_node.VariableDeclaration):
- return self.visit_children(node)
-
- def visit_event_declaration(self, node: ast_node.EventDeclaration):
- return self.visit_children(node)
-
- def visit_event_reference(self, node: ast_node.EventReference):
- return self.visit_children(node)
-
- def visit_event_field_declaration(self, node: ast_node.EventFieldDecl):
- return self.visit_children(node)
-
- def visit_event_condition(self, node: ast_node.EventCondition):
- return self.visit_children(node)
-
- def visit_method_declaration(self, node: ast_node.MethodDeclaration):
- return self.visit_children(node)
-
- def visit_method_body(self, node: ast_node.MethodBody):
- return self.visit_children(node)
-
- def visit_cover_declaration(self, node: ast_node.coverDeclaration):
- return self.visit_children(node)
-
- def visit_record_declaration(self, node: ast_node.recordDeclaration):
- return self.visit_children(node)
-
- def visit_argument(self, node: ast_node.Argument):
- return self.visit_children(node)
-
- def visit_named_argument(self, node: ast_node.NamedArgument):
- return self.visit_children(node)
-
- def visit_positional_argument(self, node: ast_node.PositionalArgument):
- return self.visit_children(node)
-
- def visit_variable_declaration(self, node: ast_node.VariableDeclaration):
- return self.visit_children(node)
-
- def visit_keep_constraint_declaration(
- self, node: ast_node.KeepConstraintDeclaration
- ):
- return self.visit_children(node)
-
- def visit_remove_default_declaration(self, node: ast_node.RemoveDefaultDeclaration):
- return self.visit_children(node)
-
- def visit_on_directive(self, node: ast_node.OnDirective):
- return self.visit_children(node)
-
- def visit_do_directive(self, node: ast_node.DoDirective):
- return self.visit_children(node)
-
- def visit_do_member(self, node: ast_node.DoMember):
- return self.visit_children(node)
-
- def visit_wait_directive(self, node: ast_node.WaitDirective):
- return self.visit_children(node)
-
- def visit_emit_directive(self, node: ast_node.EmitDirective):
- return self.visit_children(node)
-
- def visit_call_directive(self, node: ast_node.CallDirective):
- return self.visit_children(node)
-
- def visit_until_directive(self, node: ast_node.UntilDirective):
- return self.visit_children(node)
-
- def visit_behavior_invocation(self, node: ast_node.BehaviorInvocation):
- return self.visit_children(node)
-
- def visit_modifier_invocation(self, node: ast_node.ModifierInvocation):
- return self.visit_children(node)
-
- def visit_rise_expression(self, node: ast_node.RiseExpression):
- return self.visit_children(node)
-
- def visit_fall_expression(self, node: ast_node.FallExpression):
- return self.visit_children(node)
-
- def visit_elapsed_expression(self, node: ast_node.ElapsedExpression):
- return self.visit_children(node)
-
- def visit_every_expression(self, node: ast_node.EveryExpression):
- return self.visit_children(node)
-
- def visit_sample_expression(self, node: ast_node.SampleExpression):
- return self.visit_children(node)
-
- def visit_cast_expression(self, node: ast_node.CastExpression):
- return self.visit_children(node)
-
- def visit_type_test_expression(self, node: ast_node.TypeTestExpression):
- return self.visit_children(node)
-
- def visit_element_access_expression(self, node: ast_node.ElementAccessExpression):
- return self.visit_children(node)
-
- def visit_function_application_expression(
- self, node: ast_node.FunctionApplicationExpression
- ):
- return self.visit_children(node)
-
- def visit_binary_expression(self, node: ast_node.BinaryExpression):
- return self.visit_children(node)
-
- def visit_unary_expression(self, node: ast_node.UnaryExpression):
- return self.visit_children(node)
-
- def visit_ternary_expression(self, node: ast_node.TernaryExpression):
- return self.visit_children(node)
-
- def visit_list_expression(self, node: ast_node.ListExpression):
- return self.visit_children(node)
-
- def visit_range_expression(self, node: ast_node.RangeExpression):
- return self.visit_children(node)
-
- def visit_physical_literal(self, node: ast_node.PhysicalLiteral):
- return self.visit_children(node)
-
- def visit_integer_literal(self, node: ast_node.IntegerLiteral):
- return self.visit_children(node)
-
- def visit_float_literal(self, node: ast_node.FloatLiteral):
- return self.visit_children(node)
-
- def visit_bool_literal(self, node: ast_node.BoolLiteral):
- return self.visit_children(node)
-
- def visit_string_literal(self, node: ast_node.StringLiteral):
- return self.visit_children(node)
-
- def visit_type(self, node: ast_node.Type):
- return self.visit_children(node)
-
- def visit_identifier(self, node: ast_node.Identifier):
- return self.visit_children(node)
-
- def visit_identifier_reference(self, node: ast_node.IdentifierReference):
- return self.visit_children(node)
diff --git a/srunner/osc2/ast_manager/ast_walker.py b/srunner/osc2/ast_manager/ast_walker.py
deleted file mode 100644
index a9854ca..0000000
--- a/srunner/osc2/ast_manager/ast_walker.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import srunner.osc2.ast_manager.ast_listener as ASTListener
-from srunner.osc2.ast_manager.ast_node import AST
-
-
-class ASTWalker(object):
- def walk(self, listener: ASTListener, t: AST):
- self.enter_node(listener, t)
-
- for child in t.get_children():
- if isinstance(child, AST):
- self.walk(listener, child)
-
- self.exit_node(listener, t)
-
- def enter_node(self, listener: ASTListener, t: AST):
- t.enter_node(listener)
-
- def exit_node(self, listener: ASTListener, t: AST):
- t.exit_node(listener)
diff --git a/srunner/osc2/error_manager/__init__.py b/srunner/osc2/error_manager/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2/error_manager/error_listener.py b/srunner/osc2/error_manager/error_listener.py
deleted file mode 100644
index b15a479..0000000
--- a/srunner/osc2/error_manager/error_listener.py
+++ /dev/null
@@ -1,84 +0,0 @@
-import re
-
-from antlr4.error.ErrorListener import *
-from antlr4.Token import Token
-
-from srunner.osc2.utils.log_manager import LOG_ERROR
-
-
-class OscErrorListener(ErrorListener):
- def __init__(self, src):
- super(ErrorListener, self).__init__()
- self.src = src
-
- def getWrongToken(self, t: Token):
- if t is None:
- return ""
- s = t.text
- if s is None:
- if t.type == Token.EOF:
- s = ""
- else:
- s = "<" + str(t.type) + ">"
- return self.escapeWSAndQuote(s)
-
- def escapeWSAndQuote(self, s: str):
- s = s.replace("\n", "\\n")
- s = s.replace("\r", "\\r")
- s = s.replace("\t", "\\t")
- return "'" + s + "'"
-
- def reportIndentationError(self, line, column, token_name):
- LOG_ERROR(token_name, line=line, column=column)
- LOG_ERROR("IndentationError: wrong indentation")
-
- def reportSyntaxErrorWithTokenName(self, line, column, token_name):
- LOG_ERROR(token_name, line=line, column=column)
- LOG_ERROR("SyntaxError: invalid syntax")
-
- def reportMismatchInputError(self, line, column, token_name):
- error_msg = " mismatched input " + token_name
- LOG_ERROR(error_msg, line=line, column=column)
- LOG_ERROR("SyntaxError: invalid syntax")
-
- def reportCommonSyntaxError(self, line, column, msg):
- LOG_ERROR(msg, line=line, column=column)
- LOG_ERROR("SyntaxError: invalid syntax")
-
- # Syntax error
- def syntaxError(self, recognizer, offendingSymbol, line, column, msg, e):
- token = recognizer.getCurrentToken()
- token_name = self.getWrongToken(token)
-
- if re.match("^extraneous", msg):
- if token_name == "'\\n'":
- self.reportIndentationError(line, column, None)
- else:
- self.reportSyntaxErrorWithTokenName(line, column, token_name)
- elif re.match("^mismatched", msg):
- self.reportMismatchInputError(line, column, token_name)
- elif re.match("^missing", msg):
- if re.search("INDENT", msg):
- self.reportIndentationError(line, column, token_name)
- else:
- self.reportMismatchInputError(line, column, token_name)
- elif re.match("^no viable alternative", msg):
- self.reportCommonSyntaxError(line, column, msg)
- else:
- self.reportCommonSyntaxError(line, column, msg)
-
- # Ambiguity error
- def reportAmbiguity(
- self, recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs
- ):
- pass
-
- def reportAttemptingFullContext(
- self, recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs
- ):
- pass
-
- def reportContextSensitivity(
- self, recognizer, dfa, startIndex, stopIndex, prediction, configs
- ):
- pass
diff --git a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2.interp b/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2.interp
deleted file mode 100644
index d540e13..0000000
--- a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2.interp
+++ /dev/null
@@ -1,330 +0,0 @@
-token literal names:
-null
-'import'
-'.'
-'type'
-'is'
-'SI'
-'unit'
-'of'
-','
-':'
-'enum'
-'='
-'!'
-'struct'
-'inherits'
-'=='
-'actor'
-'scenario'
-'action'
-'modifier'
-'extend'
-'global'
-'list'
-'int'
-'uint'
-'float'
-'bool'
-'string'
-'event'
-'if'
-'@'
-'as'
-'rise'
-'fall'
-'elapsed'
-'every'
-'var'
-'sample'
-'with'
-'keep'
-'default'
-'hard'
-'remove_default'
-'on'
-'do'
-'serial'
-'one_of'
-'parallel'
-'wait'
-'emit'
-'call'
-'until'
-'def'
-'->'
-'expression'
-'undefined'
-'external'
-'only'
-'cover'
-'record'
-'range'
-'?'
-'=>'
-'or'
-'and'
-'not'
-'!='
-'<'
-'<='
-'>'
-'>='
-'in'
-'+'
-'-'
-'*'
-'/'
-'%'
-'it'
-'..'
-null
-'['
-']'
-'('
-')'
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-
-token symbolic names:
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-NEWLINE
-OPEN_BRACK
-CLOSE_BRACK
-OPEN_PAREN
-CLOSE_PAREN
-SKIP_
-BLOCK_COMMENT
-LINE_COMMENT
-StringLiteral
-FloatLiteral
-UintLiteral
-HexUintLiteral
-IntLiteral
-BoolLiteral
-Identifier
-INDENT
-DEDENT
-
-rule names:
-osc_file
-preludeStatement
-importStatement
-importReference
-structuredIdentifier
-oscDeclaration
-physicalTypeDeclaration
-physicalTypeName
-baseUnitSpecifier
-sIBaseUnitSpecifier
-unitDeclaration
-unitSpecifier
-sIUnitSpecifier
-sIBaseExponentList
-sIBaseExponent
-sIFactor
-sIOffset
-enumDeclaration
-enumMemberDecl
-numMemberValue
-enumName
-enumMemberName
-enumValueReference
-structDeclaration
-structMemberDecl
-fieldName
-structName
-actorDeclaration
-actorMemberDecl
-actorName
-scenarioDeclaration
-scenarioMemberDecl
-qualifiedBehaviorName
-behaviorName
-actionDeclaration
-modifierDeclaration
-modifierName
-typeExtension
-enumTypeExtension
-structuredTypeExtension
-extendableTypeName
-extensionMemberDecl
-globalParameterDeclaration
-typeDeclarator
-nonAggregateTypeDeclarator
-aggregateTypeDeclarator
-listTypeDeclarator
-primitiveType
-typeName
-eventDeclaration
-eventSpecification
-eventReference
-eventFieldDecl
-eventFieldName
-eventName
-eventPath
-eventCondition
-riseExpression
-fallExpression
-elapsedExpression
-everyExpression
-boolExpression
-durationExpression
-fieldDeclaration
-parameterDeclaration
-variableDeclaration
-sampleExpression
-defaultValue
-parameterWithDeclaration
-parameterWithMember
-constraintDeclaration
-keepConstraintDeclaration
-constraintQualifier
-constraintExpression
-removeDefaultDeclaration
-parameterReference
-modifierInvocation
-behaviorExpression
-behaviorSpecification
-onDirective
-onMember
-doDirective
-doMember
-composition
-compositionOperator
-behaviorInvocation
-behaviorWithDeclaration
-behaviorWithMember
-labelName
-actorExpression
-waitDirective
-emitDirective
-callDirective
-untilDirective
-methodInvocation
-methodDeclaration
-returnType
-methodImplementation
-methodQualifier
-methodName
-coverageDeclaration
-coverageArgumentList
-expression
-ternaryOpExp
-implication
-disjunction
-conjunction
-inversion
-relation
-relationalOp
-sum
-additiveOp
-term
-multiplicativeOp
-factor
-postfixExp
-fieldAccess
-primaryExp
-valueExp
-listConstructor
-rangeConstructor
-argumentListSpecification
-argumentSpecification
-argumentName
-argumentList
-positionalArgument
-namedArgument
-physicalLiteral
-integerLiteral
-
-
-atn:
-[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 97, 1275, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 3, 2, 7, 2, 262, 10, 2, 12, 2, 14, 2, 265, 11, 2, 3, 2, 7, 2, 268, 10, 2, 12, 2, 14, 2, 271, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 282, 10, 4, 3, 5, 3, 5, 5, 5, 286, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 7, 6, 294, 10, 6, 12, 6, 14, 6, 297, 11, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 310, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 5, 14, 342, 10, 14, 3, 14, 3, 14, 5, 14, 346, 10, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 7, 15, 353, 10, 15, 12, 15, 14, 15, 356, 11, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 367, 10, 17, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 373, 10, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 382, 10, 19, 12, 19, 14, 19, 385, 11, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 5, 20, 393, 10, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 5, 24, 404, 10, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 5, 25, 417, 10, 25, 3, 25, 3, 25, 5, 25, 421, 10, 25, 5, 25, 423, 10, 25, 3, 25, 3, 25, 3, 25, 3, 25, 6, 25, 429, 10, 25, 13, 25, 14, 25, 430, 3, 25, 3, 25, 3, 25, 5, 25, 436, 10, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 443, 10, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 458, 10, 29, 3, 29, 3, 29, 5, 29, 462, 10, 29, 5, 29, 464, 10, 29, 3, 29, 3, 29, 3, 29, 3, 29, 6, 29, 470, 10, 29, 13, 29, 14, 29, 471, 3, 29, 3, 29, 3, 29, 5, 29, 477, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 484, 10, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 497, 10, 32, 3, 32, 3, 32, 5, 32, 501, 10, 32, 5, 32, 503, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 6, 32, 510, 10, 32, 13, 32, 14, 32, 511, 3, 32, 3, 32, 3, 32, 5, 32, 517, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 525, 10, 33, 3, 34, 3, 34, 3, 34, 5, 34, 530, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 545, 10, 36, 3, 36, 3, 36, 5, 36, 549, 10, 36, 5, 36, 551, 10, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 6, 36, 558, 10, 36, 13, 36, 14, 36, 559, 3, 36, 3, 36, 3, 36, 5, 36, 565, 10, 36, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 571, 10, 37, 3, 37, 3, 37, 3, 37, 5, 37, 576, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 6, 37, 582, 10, 37, 13, 37, 14, 37, 583, 3, 37, 3, 37, 3, 37, 5, 37, 589, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 5, 39, 595, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 604, 10, 40, 12, 40, 14, 40, 607, 11, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 6, 41, 618, 10, 41, 13, 41, 14, 41, 619, 3, 41, 3, 41, 3, 42, 3, 42, 5, 42, 626, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 632, 10, 43, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 5, 45, 639, 10, 45, 3, 46, 3, 46, 3, 46, 5, 46, 644, 10, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 662, 10, 51, 3, 51, 3, 51, 5, 51, 666, 10, 51, 3, 51, 3, 51, 3, 52, 3, 52, 5, 52, 672, 10, 52, 3, 52, 3, 52, 5, 52, 676, 10, 52, 3, 52, 5, 52, 679, 10, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 5, 57, 694, 10, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 703, 10, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 5, 62, 728, 10, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 65, 3, 65, 5, 65, 738, 10, 65, 3, 66, 3, 66, 3, 66, 7, 66, 743, 10, 66, 12, 66, 14, 66, 746, 11, 66, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 752, 10, 66, 3, 66, 3, 66, 5, 66, 756, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 7, 67, 762, 10, 67, 12, 67, 14, 67, 765, 11, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 772, 10, 67, 5, 67, 774, 10, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 5, 68, 785, 10, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 6, 70, 796, 10, 70, 13, 70, 14, 70, 797, 3, 70, 3, 70, 3, 71, 3, 71, 5, 71, 804, 10, 71, 3, 72, 3, 72, 5, 72, 808, 10, 72, 3, 73, 3, 73, 3, 73, 5, 73, 813, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 5, 77, 831, 10, 77, 3, 78, 3, 78, 5, 78, 835, 10, 78, 3, 78, 3, 78, 5, 78, 839, 10, 78, 3, 78, 3, 78, 3, 78, 5, 78, 844, 10, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 5, 80, 856, 10, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 6, 81, 864, 10, 81, 13, 81, 14, 81, 865, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 872, 10, 82, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 5, 84, 880, 10, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 887, 10, 84, 3, 85, 3, 85, 3, 85, 5, 85, 892, 10, 85, 3, 85, 5, 85, 895, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 6, 85, 901, 10, 85, 13, 85, 14, 85, 902, 3, 85, 3, 85, 5, 85, 907, 10, 85, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 5, 87, 914, 10, 87, 3, 87, 3, 87, 3, 87, 5, 87, 919, 10, 87, 3, 87, 3, 87, 3, 87, 5, 87, 924, 10, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 6, 88, 931, 10, 88, 13, 88, 14, 88, 932, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 940, 10, 89, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 5, 93, 956, 10, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 5, 96, 971, 10, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 979, 10, 97, 3, 97, 3, 97, 3, 97, 5, 97, 984, 10, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 99, 3, 99, 5, 99, 993, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1002, 10, 99, 3, 99, 3, 99, 5, 99, 1006, 10, 99, 3, 100, 3, 100, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1023, 10, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 7, 103, 1043, 10, 103, 12, 103, 14, 103, 1046, 11, 103, 3, 104, 3, 104, 5, 104, 1050, 10, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 7, 106, 1061, 10, 106, 12, 106, 14, 106, 1064, 11, 106, 3, 107, 3, 107, 3, 107, 7, 107, 1069, 10, 107, 12, 107, 14, 107, 1072, 11, 107, 3, 108, 3, 108, 3, 108, 7, 108, 1077, 10, 108, 12, 108, 14, 108, 1080, 11, 108, 3, 109, 3, 109, 3, 109, 5, 109, 1085, 10, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 7, 110, 1094, 10, 110, 12, 110, 14, 110, 1097, 11, 110, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 7, 112, 1108, 10, 112, 12, 112, 14, 112, 1111, 11, 112, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 7, 114, 1122, 10, 114, 12, 114, 14, 114, 1125, 11, 114, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 5, 116, 1132, 10, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 5, 117, 1159, 10, 117, 3, 117, 3, 117, 3, 117, 3, 117, 7, 117, 1165, 10, 117, 12, 117, 14, 117, 1168, 11, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 1181, 10, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 1191, 10, 120, 3, 121, 3, 121, 3, 121, 3, 121, 7, 121, 1197, 10, 121, 12, 121, 14, 121, 1200, 11, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 1217, 10, 122, 3, 123, 3, 123, 3, 123, 7, 123, 1222, 10, 123, 12, 123, 14, 123, 1225, 11, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 5, 124, 1232, 10, 124, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 7, 126, 1239, 10, 126, 12, 126, 14, 126, 1242, 11, 126, 3, 126, 3, 126, 7, 126, 1246, 10, 126, 12, 126, 14, 126, 1249, 11, 126, 3, 126, 3, 126, 3, 126, 7, 126, 1254, 10, 126, 12, 126, 14, 126, 1257, 11, 126, 5, 126, 1259, 10, 126, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 5, 129, 1269, 10, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 354, 7, 10, 218, 222, 226, 232, 131, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 2, 11, 3, 2, 91, 92, 3, 2, 25, 29, 3, 2, 42, 43, 3, 2, 47, 49, 3, 2, 60, 61, 4, 2, 17, 17, 68, 73, 3, 2, 74, 75, 3, 2, 76, 78, 3, 2, 91, 93, 2, 1311, 2, 263, 3, 2, 2, 2, 4, 274, 3, 2, 2, 2, 6, 281, 3, 2, 2, 2, 8, 285, 3, 2, 2, 2, 10, 287, 3, 2, 2, 2, 12, 309, 3, 2, 2, 2, 14, 311, 3, 2, 2, 2, 16, 317, 3, 2, 2, 2, 18, 319, 3, 2, 2, 2, 20, 321, 3, 2, 2, 2, 22, 326, 3, 2, 2, 2, 24, 334, 3, 2, 2, 2, 26, 336, 3, 2, 2, 2, 28, 349, 3, 2, 2, 2, 30, 357, 3, 2, 2, 2, 32, 362, 3, 2, 2, 2, 34, 368, 3, 2, 2, 2, 36, 374, 3, 2, 2, 2, 38, 389, 3, 2, 2, 2, 40, 394, 3, 2, 2, 2, 42, 396, 3, 2, 2, 2, 44, 398, 3, 2, 2, 2, 46, 403, 3, 2, 2, 2, 48, 407, 3, 2, 2, 2, 50, 442, 3, 2, 2, 2, 52, 444, 3, 2, 2, 2, 54, 446, 3, 2, 2, 2, 56, 448, 3, 2, 2, 2, 58, 483, 3, 2, 2, 2, 60, 485, 3, 2, 2, 2, 62, 487, 3, 2, 2, 2, 64, 524, 3, 2, 2, 2, 66, 529, 3, 2, 2, 2, 68, 533, 3, 2, 2, 2, 70, 535, 3, 2, 2, 2, 72, 566, 3, 2, 2, 2, 74, 590, 3, 2, 2, 2, 76, 594, 3, 2, 2, 2, 78, 596, 3, 2, 2, 2, 80, 611, 3, 2, 2, 2, 82, 625, 3, 2, 2, 2, 84, 631, 3, 2, 2, 2, 86, 633, 3, 2, 2, 2, 88, 638, 3, 2, 2, 2, 90, 643, 3, 2, 2, 2, 92, 645, 3, 2, 2, 2, 94, 647, 3, 2, 2, 2, 96, 651, 3, 2, 2, 2, 98, 653, 3, 2, 2, 2, 100, 655, 3, 2, 2, 2, 102, 678, 3, 2, 2, 2, 104, 680, 3, 2, 2, 2, 106, 683, 3, 2, 2, 2, 108, 686, 3, 2, 2, 2, 110, 688, 3, 2, 2, 2, 112, 693, 3, 2, 2, 2, 114, 702, 3, 2, 2, 2, 116, 704, 3, 2, 2, 2, 118, 709, 3, 2, 2, 2, 120, 714, 3, 2, 2, 2, 122, 719, 3, 2, 2, 2, 124, 731, 3, 2, 2, 2, 126, 733, 3, 2, 2, 2, 128, 737, 3, 2, 2, 2, 130, 739, 3, 2, 2, 2, 132, 757, 3, 2, 2, 2, 134, 777, 3, 2, 2, 2, 136, 788, 3, 2, 2, 2, 138, 790, 3, 2, 2, 2, 140, 803, 3, 2, 2, 2, 142, 807, 3, 2, 2, 2, 144, 809, 3, 2, 2, 2, 146, 818, 3, 2, 2, 2, 148, 820, 3, 2, 2, 2, 150, 822, 3, 2, 2, 2, 152, 830, 3, 2, 2, 2, 154, 838, 3, 2, 2, 2, 156, 848, 3, 2, 2, 2, 158, 855, 3, 2, 2, 2, 160, 857, 3, 2, 2, 2, 162, 871, 3, 2, 2, 2, 164, 873, 3, 2, 2, 2, 166, 879, 3, 2, 2, 2, 168, 888, 3, 2, 2, 2, 170, 908, 3, 2, 2, 2, 172, 913, 3, 2, 2, 2, 174, 925, 3, 2, 2, 2, 176, 939, 3, 2, 2, 2, 178, 941, 3, 2, 2, 2, 180, 943, 3, 2, 2, 2, 182, 945, 3, 2, 2, 2, 184, 949, 3, 2, 2, 2, 186, 959, 3, 2, 2, 2, 188, 963, 3, 2, 2, 2, 190, 967, 3, 2, 2, 2, 192, 974, 3, 2, 2, 2, 194, 988, 3, 2, 2, 2, 196, 990, 3, 2, 2, 2, 198, 1007, 3, 2, 2, 2, 200, 1009, 3, 2, 2, 2, 202, 1011, 3, 2, 2, 2, 204, 1017, 3, 2, 2, 2, 206, 1049, 3, 2, 2, 2, 208, 1051, 3, 2, 2, 2, 210, 1057, 3, 2, 2, 2, 212, 1065, 3, 2, 2, 2, 214, 1073, 3, 2, 2, 2, 216, 1084, 3, 2, 2, 2, 218, 1086, 3, 2, 2, 2, 220, 1098, 3, 2, 2, 2, 222, 1100, 3, 2, 2, 2, 224, 1112, 3, 2, 2, 2, 226, 1114, 3, 2, 2, 2, 228, 1126, 3, 2, 2, 2, 230, 1131, 3, 2, 2, 2, 232, 1133, 3, 2, 2, 2, 234, 1169, 3, 2, 2, 2, 236, 1180, 3, 2, 2, 2, 238, 1190, 3, 2, 2, 2, 240, 1192, 3, 2, 2, 2, 242, 1216, 3, 2, 2, 2, 244, 1218, 3, 2, 2, 2, 246, 1226, 3, 2, 2, 2, 248, 1233, 3, 2, 2, 2, 250, 1258, 3, 2, 2, 2, 252, 1260, 3, 2, 2, 2, 254, 1262, 3, 2, 2, 2, 256, 1268, 3, 2, 2, 2, 258, 1272, 3, 2, 2, 2, 260, 262, 5, 4, 3, 2, 261, 260, 3, 2, 2, 2, 262, 265, 3, 2, 2, 2, 263, 261, 3, 2, 2, 2, 263, 264, 3, 2, 2, 2, 264, 269, 3, 2, 2, 2, 265, 263, 3, 2, 2, 2, 266, 268, 5, 12, 7, 2, 267, 266, 3, 2, 2, 2, 268, 271, 3, 2, 2, 2, 269, 267, 3, 2, 2, 2, 269, 270, 3, 2, 2, 2, 270, 272, 3, 2, 2, 2, 271, 269, 3, 2, 2, 2, 272, 273, 7, 2, 2, 3, 273, 3, 3, 2, 2, 2, 274, 275, 5, 6, 4, 2, 275, 5, 3, 2, 2, 2, 276, 277, 7, 3, 2, 2, 277, 278, 5, 8, 5, 2, 278, 279, 7, 81, 2, 2, 279, 282, 3, 2, 2, 2, 280, 282, 7, 81, 2, 2, 281, 276, 3, 2, 2, 2, 281, 280, 3, 2, 2, 2, 282, 7, 3, 2, 2, 2, 283, 286, 7, 89, 2, 2, 284, 286, 5, 10, 6, 2, 285, 283, 3, 2, 2, 2, 285, 284, 3, 2, 2, 2, 286, 9, 3, 2, 2, 2, 287, 288, 8, 6, 1, 2, 288, 289, 7, 95, 2, 2, 289, 295, 3, 2, 2, 2, 290, 291, 12, 3, 2, 2, 291, 292, 7, 4, 2, 2, 292, 294, 7, 95, 2, 2, 293, 290, 3, 2, 2, 2, 294, 297, 3, 2, 2, 2, 295, 293, 3, 2, 2, 2, 295, 296, 3, 2, 2, 2, 296, 11, 3, 2, 2, 2, 297, 295, 3, 2, 2, 2, 298, 310, 5, 14, 8, 2, 299, 310, 5, 22, 12, 2, 300, 310, 5, 36, 19, 2, 301, 310, 5, 48, 25, 2, 302, 310, 5, 56, 29, 2, 303, 310, 5, 70, 36, 2, 304, 310, 5, 62, 32, 2, 305, 310, 5, 72, 37, 2, 306, 310, 5, 76, 39, 2, 307, 310, 5, 86, 44, 2, 308, 310, 7, 81, 2, 2, 309, 298, 3, 2, 2, 2, 309, 299, 3, 2, 2, 2, 309, 300, 3, 2, 2, 2, 309, 301, 3, 2, 2, 2, 309, 302, 3, 2, 2, 2, 309, 303, 3, 2, 2, 2, 309, 304, 3, 2, 2, 2, 309, 305, 3, 2, 2, 2, 309, 306, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 309, 308, 3, 2, 2, 2, 310, 13, 3, 2, 2, 2, 311, 312, 7, 5, 2, 2, 312, 313, 5, 16, 9, 2, 313, 314, 7, 6, 2, 2, 314, 315, 5, 18, 10, 2, 315, 316, 7, 81, 2, 2, 316, 15, 3, 2, 2, 2, 317, 318, 7, 95, 2, 2, 318, 17, 3, 2, 2, 2, 319, 320, 5, 20, 11, 2, 320, 19, 3, 2, 2, 2, 321, 322, 7, 7, 2, 2, 322, 323, 7, 84, 2, 2, 323, 324, 5, 28, 15, 2, 324, 325, 7, 85, 2, 2, 325, 21, 3, 2, 2, 2, 326, 327, 7, 8, 2, 2, 327, 328, 7, 95, 2, 2, 328, 329, 7, 9, 2, 2, 329, 330, 5, 16, 9, 2, 330, 331, 7, 6, 2, 2, 331, 332, 5, 24, 13, 2, 332, 333, 7, 81, 2, 2, 333, 23, 3, 2, 2, 2, 334, 335, 5, 26, 14, 2, 335, 25, 3, 2, 2, 2, 336, 337, 7, 7, 2, 2, 337, 338, 7, 84, 2, 2, 338, 341, 5, 28, 15, 2, 339, 340, 7, 10, 2, 2, 340, 342, 5, 32, 17, 2, 341, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 345, 3, 2, 2, 2, 343, 344, 7, 10, 2, 2, 344, 346, 5, 34, 18, 2, 345, 343, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 347, 3, 2, 2, 2, 347, 348, 7, 85, 2, 2, 348, 27, 3, 2, 2, 2, 349, 354, 5, 30, 16, 2, 350, 351, 7, 10, 2, 2, 351, 353, 5, 30, 16, 2, 352, 350, 3, 2, 2, 2, 353, 356, 3, 2, 2, 2, 354, 355, 3, 2, 2, 2, 354, 352, 3, 2, 2, 2, 355, 29, 3, 2, 2, 2, 356, 354, 3, 2, 2, 2, 357, 358, 7, 95, 2, 2, 358, 359, 8, 16, 1, 2, 359, 360, 7, 11, 2, 2, 360, 361, 5, 258, 130, 2, 361, 31, 3, 2, 2, 2, 362, 363, 7, 95, 2, 2, 363, 366, 7, 11, 2, 2, 364, 367, 7, 90, 2, 2, 365, 367, 5, 258, 130, 2, 366, 364, 3, 2, 2, 2, 366, 365, 3, 2, 2, 2, 367, 33, 3, 2, 2, 2, 368, 369, 7, 95, 2, 2, 369, 372, 7, 11, 2, 2, 370, 373, 7, 90, 2, 2, 371, 373, 5, 258, 130, 2, 372, 370, 3, 2, 2, 2, 372, 371, 3, 2, 2, 2, 373, 35, 3, 2, 2, 2, 374, 375, 7, 12, 2, 2, 375, 376, 5, 42, 22, 2, 376, 377, 7, 11, 2, 2, 377, 378, 7, 82, 2, 2, 378, 383, 5, 38, 20, 2, 379, 380, 7, 10, 2, 2, 380, 382, 5, 38, 20, 2, 381, 379, 3, 2, 2, 2, 382, 385, 3, 2, 2, 2, 383, 381, 3, 2, 2, 2, 383, 384, 3, 2, 2, 2, 384, 386, 3, 2, 2, 2, 385, 383, 3, 2, 2, 2, 386, 387, 7, 83, 2, 2, 387, 388, 7, 81, 2, 2, 388, 37, 3, 2, 2, 2, 389, 392, 5, 44, 23, 2, 390, 391, 7, 13, 2, 2, 391, 393, 5, 40, 21, 2, 392, 390, 3, 2, 2, 2, 392, 393, 3, 2, 2, 2, 393, 39, 3, 2, 2, 2, 394, 395, 9, 2, 2, 2, 395, 41, 3, 2, 2, 2, 396, 397, 7, 95, 2, 2, 397, 43, 3, 2, 2, 2, 398, 399, 7, 95, 2, 2, 399, 45, 3, 2, 2, 2, 400, 401, 5, 42, 22, 2, 401, 402, 7, 14, 2, 2, 402, 404, 3, 2, 2, 2, 403, 400, 3, 2, 2, 2, 403, 404, 3, 2, 2, 2, 404, 405, 3, 2, 2, 2, 405, 406, 5, 44, 23, 2, 406, 47, 3, 2, 2, 2, 407, 408, 7, 15, 2, 2, 408, 422, 5, 54, 28, 2, 409, 410, 7, 16, 2, 2, 410, 420, 5, 54, 28, 2, 411, 412, 7, 84, 2, 2, 412, 413, 5, 52, 27, 2, 413, 416, 7, 17, 2, 2, 414, 417, 5, 46, 24, 2, 415, 417, 7, 94, 2, 2, 416, 414, 3, 2, 2, 2, 416, 415, 3, 2, 2, 2, 417, 418, 3, 2, 2, 2, 418, 419, 7, 85, 2, 2, 419, 421, 3, 2, 2, 2, 420, 411, 3, 2, 2, 2, 420, 421, 3, 2, 2, 2, 421, 423, 3, 2, 2, 2, 422, 409, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 435, 3, 2, 2, 2, 424, 425, 7, 11, 2, 2, 425, 426, 7, 81, 2, 2, 426, 428, 7, 96, 2, 2, 427, 429, 5, 50, 26, 2, 428, 427, 3, 2, 2, 2, 429, 430, 3, 2, 2, 2, 430, 428, 3, 2, 2, 2, 430, 431, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 433, 7, 97, 2, 2, 433, 436, 3, 2, 2, 2, 434, 436, 7, 81, 2, 2, 435, 424, 3, 2, 2, 2, 435, 434, 3, 2, 2, 2, 436, 49, 3, 2, 2, 2, 437, 443, 5, 100, 51, 2, 438, 443, 5, 128, 65, 2, 439, 443, 5, 142, 72, 2, 440, 443, 5, 192, 97, 2, 441, 443, 5, 202, 102, 2, 442, 437, 3, 2, 2, 2, 442, 438, 3, 2, 2, 2, 442, 439, 3, 2, 2, 2, 442, 440, 3, 2, 2, 2, 442, 441, 3, 2, 2, 2, 443, 51, 3, 2, 2, 2, 444, 445, 7, 95, 2, 2, 445, 53, 3, 2, 2, 2, 446, 447, 7, 95, 2, 2, 447, 55, 3, 2, 2, 2, 448, 449, 7, 18, 2, 2, 449, 463, 5, 60, 31, 2, 450, 451, 7, 16, 2, 2, 451, 461, 5, 60, 31, 2, 452, 453, 7, 84, 2, 2, 453, 454, 5, 52, 27, 2, 454, 457, 7, 17, 2, 2, 455, 458, 5, 46, 24, 2, 456, 458, 7, 94, 2, 2, 457, 455, 3, 2, 2, 2, 457, 456, 3, 2, 2, 2, 458, 459, 3, 2, 2, 2, 459, 460, 7, 85, 2, 2, 460, 462, 3, 2, 2, 2, 461, 452, 3, 2, 2, 2, 461, 462, 3, 2, 2, 2, 462, 464, 3, 2, 2, 2, 463, 450, 3, 2, 2, 2, 463, 464, 3, 2, 2, 2, 464, 476, 3, 2, 2, 2, 465, 466, 7, 11, 2, 2, 466, 467, 7, 81, 2, 2, 467, 469, 7, 96, 2, 2, 468, 470, 5, 58, 30, 2, 469, 468, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 469, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 474, 7, 97, 2, 2, 474, 477, 3, 2, 2, 2, 475, 477, 7, 81, 2, 2, 476, 465, 3, 2, 2, 2, 476, 475, 3, 2, 2, 2, 477, 57, 3, 2, 2, 2, 478, 484, 5, 100, 51, 2, 479, 484, 5, 128, 65, 2, 480, 484, 5, 142, 72, 2, 481, 484, 5, 192, 97, 2, 482, 484, 5, 202, 102, 2, 483, 478, 3, 2, 2, 2, 483, 479, 3, 2, 2, 2, 483, 480, 3, 2, 2, 2, 483, 481, 3, 2, 2, 2, 483, 482, 3, 2, 2, 2, 484, 59, 3, 2, 2, 2, 485, 486, 7, 95, 2, 2, 486, 61, 3, 2, 2, 2, 487, 488, 7, 19, 2, 2, 488, 502, 5, 66, 34, 2, 489, 490, 7, 16, 2, 2, 490, 500, 5, 66, 34, 2, 491, 492, 7, 84, 2, 2, 492, 493, 5, 52, 27, 2, 493, 496, 7, 17, 2, 2, 494, 497, 5, 46, 24, 2, 495, 497, 7, 94, 2, 2, 496, 494, 3, 2, 2, 2, 496, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 499, 7, 85, 2, 2, 499, 501, 3, 2, 2, 2, 500, 491, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 503, 3, 2, 2, 2, 502, 489, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 516, 3, 2, 2, 2, 504, 505, 7, 11, 2, 2, 505, 506, 7, 81, 2, 2, 506, 509, 7, 96, 2, 2, 507, 510, 5, 64, 33, 2, 508, 510, 5, 158, 80, 2, 509, 507, 3, 2, 2, 2, 509, 508, 3, 2, 2, 2, 510, 511, 3, 2, 2, 2, 511, 509, 3, 2, 2, 2, 511, 512, 3, 2, 2, 2, 512, 513, 3, 2, 2, 2, 513, 514, 7, 97, 2, 2, 514, 517, 3, 2, 2, 2, 515, 517, 7, 81, 2, 2, 516, 504, 3, 2, 2, 2, 516, 515, 3, 2, 2, 2, 517, 63, 3, 2, 2, 2, 518, 525, 5, 100, 51, 2, 519, 525, 5, 128, 65, 2, 520, 525, 5, 142, 72, 2, 521, 525, 5, 192, 97, 2, 522, 525, 5, 202, 102, 2, 523, 525, 5, 154, 78, 2, 524, 518, 3, 2, 2, 2, 524, 519, 3, 2, 2, 2, 524, 520, 3, 2, 2, 2, 524, 521, 3, 2, 2, 2, 524, 522, 3, 2, 2, 2, 524, 523, 3, 2, 2, 2, 525, 65, 3, 2, 2, 2, 526, 527, 5, 60, 31, 2, 527, 528, 7, 4, 2, 2, 528, 530, 3, 2, 2, 2, 529, 526, 3, 2, 2, 2, 529, 530, 3, 2, 2, 2, 530, 531, 3, 2, 2, 2, 531, 532, 5, 68, 35, 2, 532, 67, 3, 2, 2, 2, 533, 534, 7, 95, 2, 2, 534, 69, 3, 2, 2, 2, 535, 536, 7, 20, 2, 2, 536, 550, 5, 66, 34, 2, 537, 538, 7, 16, 2, 2, 538, 548, 5, 66, 34, 2, 539, 540, 7, 84, 2, 2, 540, 541, 5, 52, 27, 2, 541, 544, 7, 17, 2, 2, 542, 545, 5, 46, 24, 2, 543, 545, 7, 94, 2, 2, 544, 542, 3, 2, 2, 2, 544, 543, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 7, 85, 2, 2, 547, 549, 3, 2, 2, 2, 548, 539, 3, 2, 2, 2, 548, 549, 3, 2, 2, 2, 549, 551, 3, 2, 2, 2, 550, 537, 3, 2, 2, 2, 550, 551, 3, 2, 2, 2, 551, 564, 3, 2, 2, 2, 552, 553, 7, 11, 2, 2, 553, 554, 7, 81, 2, 2, 554, 557, 7, 96, 2, 2, 555, 558, 5, 64, 33, 2, 556, 558, 5, 158, 80, 2, 557, 555, 3, 2, 2, 2, 557, 556, 3, 2, 2, 2, 558, 559, 3, 2, 2, 2, 559, 557, 3, 2, 2, 2, 559, 560, 3, 2, 2, 2, 560, 561, 3, 2, 2, 2, 561, 562, 7, 97, 2, 2, 562, 565, 3, 2, 2, 2, 563, 565, 7, 81, 2, 2, 564, 552, 3, 2, 2, 2, 564, 563, 3, 2, 2, 2, 565, 71, 3, 2, 2, 2, 566, 570, 7, 21, 2, 2, 567, 568, 5, 60, 31, 2, 568, 569, 7, 4, 2, 2, 569, 571, 3, 2, 2, 2, 570, 567, 3, 2, 2, 2, 570, 571, 3, 2, 2, 2, 571, 572, 3, 2, 2, 2, 572, 575, 5, 74, 38, 2, 573, 574, 7, 9, 2, 2, 574, 576, 5, 66, 34, 2, 575, 573, 3, 2, 2, 2, 575, 576, 3, 2, 2, 2, 576, 588, 3, 2, 2, 2, 577, 578, 7, 11, 2, 2, 578, 579, 7, 81, 2, 2, 579, 581, 7, 96, 2, 2, 580, 582, 5, 64, 33, 2, 581, 580, 3, 2, 2, 2, 582, 583, 3, 2, 2, 2, 583, 581, 3, 2, 2, 2, 583, 584, 3, 2, 2, 2, 584, 585, 3, 2, 2, 2, 585, 586, 7, 97, 2, 2, 586, 589, 3, 2, 2, 2, 587, 589, 7, 81, 2, 2, 588, 577, 3, 2, 2, 2, 588, 587, 3, 2, 2, 2, 589, 73, 3, 2, 2, 2, 590, 591, 7, 95, 2, 2, 591, 75, 3, 2, 2, 2, 592, 595, 5, 78, 40, 2, 593, 595, 5, 80, 41, 2, 594, 592, 3, 2, 2, 2, 594, 593, 3, 2, 2, 2, 595, 77, 3, 2, 2, 2, 596, 597, 7, 22, 2, 2, 597, 598, 5, 42, 22, 2, 598, 599, 7, 11, 2, 2, 599, 600, 7, 82, 2, 2, 600, 605, 5, 38, 20, 2, 601, 602, 7, 10, 2, 2, 602, 604, 5, 38, 20, 2, 603, 601, 3, 2, 2, 2, 604, 607, 3, 2, 2, 2, 605, 603, 3, 2, 2, 2, 605, 606, 3, 2, 2, 2, 606, 608, 3, 2, 2, 2, 607, 605, 3, 2, 2, 2, 608, 609, 7, 83, 2, 2, 609, 610, 7, 81, 2, 2, 610, 79, 3, 2, 2, 2, 611, 612, 7, 22, 2, 2, 612, 613, 5, 82, 42, 2, 613, 614, 7, 11, 2, 2, 614, 615, 7, 81, 2, 2, 615, 617, 7, 96, 2, 2, 616, 618, 5, 84, 43, 2, 617, 616, 3, 2, 2, 2, 618, 619, 3, 2, 2, 2, 619, 617, 3, 2, 2, 2, 619, 620, 3, 2, 2, 2, 620, 621, 3, 2, 2, 2, 621, 622, 7, 97, 2, 2, 622, 81, 3, 2, 2, 2, 623, 626, 5, 98, 50, 2, 624, 626, 5, 66, 34, 2, 625, 623, 3, 2, 2, 2, 625, 624, 3, 2, 2, 2, 626, 83, 3, 2, 2, 2, 627, 632, 5, 50, 26, 2, 628, 632, 5, 58, 30, 2, 629, 632, 5, 64, 33, 2, 630, 632, 5, 158, 80, 2, 631, 627, 3, 2, 2, 2, 631, 628, 3, 2, 2, 2, 631, 629, 3, 2, 2, 2, 631, 630, 3, 2, 2, 2, 632, 85, 3, 2, 2, 2, 633, 634, 7, 23, 2, 2, 634, 635, 5, 130, 66, 2, 635, 87, 3, 2, 2, 2, 636, 639, 5, 90, 46, 2, 637, 639, 5, 92, 47, 2, 638, 636, 3, 2, 2, 2, 638, 637, 3, 2, 2, 2, 639, 89, 3, 2, 2, 2, 640, 644, 5, 96, 49, 2, 641, 644, 5, 98, 50, 2, 642, 644, 5, 66, 34, 2, 643, 640, 3, 2, 2, 2, 643, 641, 3, 2, 2, 2, 643, 642, 3, 2, 2, 2, 644, 91, 3, 2, 2, 2, 645, 646, 5, 94, 48, 2, 646, 93, 3, 2, 2, 2, 647, 648, 7, 24, 2, 2, 648, 649, 7, 9, 2, 2, 649, 650, 5, 90, 46, 2, 650, 95, 3, 2, 2, 2, 651, 652, 9, 3, 2, 2, 652, 97, 3, 2, 2, 2, 653, 654, 7, 95, 2, 2, 654, 99, 3, 2, 2, 2, 655, 656, 7, 30, 2, 2, 656, 661, 5, 110, 56, 2, 657, 658, 7, 84, 2, 2, 658, 659, 5, 244, 123, 2, 659, 660, 7, 85, 2, 2, 660, 662, 3, 2, 2, 2, 661, 657, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 665, 3, 2, 2, 2, 663, 664, 7, 6, 2, 2, 664, 666, 5, 102, 52, 2, 665, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 668, 7, 81, 2, 2, 668, 101, 3, 2, 2, 2, 669, 675, 5, 104, 53, 2, 670, 672, 5, 106, 54, 2, 671, 670, 3, 2, 2, 2, 671, 672, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 674, 7, 31, 2, 2, 674, 676, 5, 114, 58, 2, 675, 671, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 679, 3, 2, 2, 2, 677, 679, 5, 114, 58, 2, 678, 669, 3, 2, 2, 2, 678, 677, 3, 2, 2, 2, 679, 103, 3, 2, 2, 2, 680, 681, 7, 32, 2, 2, 681, 682, 5, 112, 57, 2, 682, 105, 3, 2, 2, 2, 683, 684, 7, 33, 2, 2, 684, 685, 5, 108, 55, 2, 685, 107, 3, 2, 2, 2, 686, 687, 7, 95, 2, 2, 687, 109, 3, 2, 2, 2, 688, 689, 7, 95, 2, 2, 689, 111, 3, 2, 2, 2, 690, 691, 5, 206, 104, 2, 691, 692, 7, 4, 2, 2, 692, 694, 3, 2, 2, 2, 693, 690, 3, 2, 2, 2, 693, 694, 3, 2, 2, 2, 694, 695, 3, 2, 2, 2, 695, 696, 5, 110, 56, 2, 696, 113, 3, 2, 2, 2, 697, 703, 5, 124, 63, 2, 698, 703, 5, 116, 59, 2, 699, 703, 5, 118, 60, 2, 700, 703, 5, 120, 61, 2, 701, 703, 5, 122, 62, 2, 702, 697, 3, 2, 2, 2, 702, 698, 3, 2, 2, 2, 702, 699, 3, 2, 2, 2, 702, 700, 3, 2, 2, 2, 702, 701, 3, 2, 2, 2, 703, 115, 3, 2, 2, 2, 704, 705, 7, 34, 2, 2, 705, 706, 7, 84, 2, 2, 706, 707, 5, 124, 63, 2, 707, 708, 7, 85, 2, 2, 708, 117, 3, 2, 2, 2, 709, 710, 7, 35, 2, 2, 710, 711, 7, 84, 2, 2, 711, 712, 5, 124, 63, 2, 712, 713, 7, 85, 2, 2, 713, 119, 3, 2, 2, 2, 714, 715, 7, 36, 2, 2, 715, 716, 7, 84, 2, 2, 716, 717, 5, 126, 64, 2, 717, 718, 7, 85, 2, 2, 718, 121, 3, 2, 2, 2, 719, 720, 7, 37, 2, 2, 720, 721, 7, 84, 2, 2, 721, 727, 5, 126, 64, 2, 722, 723, 7, 10, 2, 2, 723, 724, 7, 95, 2, 2, 724, 725, 8, 62, 1, 2, 725, 726, 7, 11, 2, 2, 726, 728, 5, 126, 64, 2, 727, 722, 3, 2, 2, 2, 727, 728, 3, 2, 2, 2, 728, 729, 3, 2, 2, 2, 729, 730, 7, 85, 2, 2, 730, 123, 3, 2, 2, 2, 731, 732, 5, 206, 104, 2, 732, 125, 3, 2, 2, 2, 733, 734, 5, 206, 104, 2, 734, 127, 3, 2, 2, 2, 735, 738, 5, 130, 66, 2, 736, 738, 5, 132, 67, 2, 737, 735, 3, 2, 2, 2, 737, 736, 3, 2, 2, 2, 738, 129, 3, 2, 2, 2, 739, 744, 5, 52, 27, 2, 740, 741, 7, 10, 2, 2, 741, 743, 5, 52, 27, 2, 742, 740, 3, 2, 2, 2, 743, 746, 3, 2, 2, 2, 744, 742, 3, 2, 2, 2, 744, 745, 3, 2, 2, 2, 745, 747, 3, 2, 2, 2, 746, 744, 3, 2, 2, 2, 747, 748, 7, 11, 2, 2, 748, 751, 5, 88, 45, 2, 749, 750, 7, 13, 2, 2, 750, 752, 5, 136, 69, 2, 751, 749, 3, 2, 2, 2, 751, 752, 3, 2, 2, 2, 752, 755, 3, 2, 2, 2, 753, 756, 5, 138, 70, 2, 754, 756, 7, 81, 2, 2, 755, 753, 3, 2, 2, 2, 755, 754, 3, 2, 2, 2, 756, 131, 3, 2, 2, 2, 757, 758, 7, 38, 2, 2, 758, 763, 5, 52, 27, 2, 759, 760, 7, 10, 2, 2, 760, 762, 5, 52, 27, 2, 761, 759, 3, 2, 2, 2, 762, 765, 3, 2, 2, 2, 763, 761, 3, 2, 2, 2, 763, 764, 3, 2, 2, 2, 764, 766, 3, 2, 2, 2, 765, 763, 3, 2, 2, 2, 766, 767, 7, 11, 2, 2, 767, 773, 5, 88, 45, 2, 768, 771, 7, 13, 2, 2, 769, 772, 5, 134, 68, 2, 770, 772, 5, 238, 120, 2, 771, 769, 3, 2, 2, 2, 771, 770, 3, 2, 2, 2, 772, 774, 3, 2, 2, 2, 773, 768, 3, 2, 2, 2, 773, 774, 3, 2, 2, 2, 774, 775, 3, 2, 2, 2, 775, 776, 7, 81, 2, 2, 776, 133, 3, 2, 2, 2, 777, 778, 7, 39, 2, 2, 778, 779, 7, 84, 2, 2, 779, 780, 5, 206, 104, 2, 780, 781, 7, 10, 2, 2, 781, 784, 5, 102, 52, 2, 782, 783, 7, 10, 2, 2, 783, 785, 5, 136, 69, 2, 784, 782, 3, 2, 2, 2, 784, 785, 3, 2, 2, 2, 785, 786, 3, 2, 2, 2, 786, 787, 7, 85, 2, 2, 787, 135, 3, 2, 2, 2, 788, 789, 5, 206, 104, 2, 789, 137, 3, 2, 2, 2, 790, 791, 7, 40, 2, 2, 791, 792, 7, 11, 2, 2, 792, 793, 7, 81, 2, 2, 793, 795, 7, 96, 2, 2, 794, 796, 5, 140, 71, 2, 795, 794, 3, 2, 2, 2, 796, 797, 3, 2, 2, 2, 797, 795, 3, 2, 2, 2, 797, 798, 3, 2, 2, 2, 798, 799, 3, 2, 2, 2, 799, 800, 7, 97, 2, 2, 800, 139, 3, 2, 2, 2, 801, 804, 5, 142, 72, 2, 802, 804, 5, 202, 102, 2, 803, 801, 3, 2, 2, 2, 803, 802, 3, 2, 2, 2, 804, 141, 3, 2, 2, 2, 805, 808, 5, 144, 73, 2, 806, 808, 5, 150, 76, 2, 807, 805, 3, 2, 2, 2, 807, 806, 3, 2, 2, 2, 808, 143, 3, 2, 2, 2, 809, 810, 7, 41, 2, 2, 810, 812, 7, 84, 2, 2, 811, 813, 5, 146, 74, 2, 812, 811, 3, 2, 2, 2, 812, 813, 3, 2, 2, 2, 813, 814, 3, 2, 2, 2, 814, 815, 5, 148, 75, 2, 815, 816, 7, 85, 2, 2, 816, 817, 7, 81, 2, 2, 817, 145, 3, 2, 2, 2, 818, 819, 9, 4, 2, 2, 819, 147, 3, 2, 2, 2, 820, 821, 5, 206, 104, 2, 821, 149, 3, 2, 2, 2, 822, 823, 7, 44, 2, 2, 823, 824, 7, 84, 2, 2, 824, 825, 5, 152, 77, 2, 825, 826, 7, 85, 2, 2, 826, 827, 7, 81, 2, 2, 827, 151, 3, 2, 2, 2, 828, 831, 5, 52, 27, 2, 829, 831, 5, 234, 118, 2, 830, 828, 3, 2, 2, 2, 830, 829, 3, 2, 2, 2, 831, 153, 3, 2, 2, 2, 832, 835, 5, 156, 79, 2, 833, 835, 5, 180, 91, 2, 834, 832, 3, 2, 2, 2, 834, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 837, 7, 4, 2, 2, 837, 839, 3, 2, 2, 2, 838, 834, 3, 2, 2, 2, 838, 839, 3, 2, 2, 2, 839, 840, 3, 2, 2, 2, 840, 841, 5, 74, 38, 2, 841, 843, 7, 84, 2, 2, 842, 844, 5, 250, 126, 2, 843, 842, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 846, 7, 85, 2, 2, 846, 847, 7, 81, 2, 2, 847, 155, 3, 2, 2, 2, 848, 849, 5, 180, 91, 2, 849, 850, 7, 4, 2, 2, 850, 851, 3, 2, 2, 2, 851, 852, 5, 68, 35, 2, 852, 157, 3, 2, 2, 2, 853, 856, 5, 160, 81, 2, 854, 856, 5, 164, 83, 2, 855, 853, 3, 2, 2, 2, 855, 854, 3, 2, 2, 2, 856, 159, 3, 2, 2, 2, 857, 858, 7, 45, 2, 2, 858, 859, 5, 102, 52, 2, 859, 860, 7, 11, 2, 2, 860, 861, 7, 81, 2, 2, 861, 863, 7, 96, 2, 2, 862, 864, 5, 162, 82, 2, 863, 862, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 863, 3, 2, 2, 2, 865, 866, 3, 2, 2, 2, 866, 867, 3, 2, 2, 2, 867, 868, 7, 97, 2, 2, 868, 161, 3, 2, 2, 2, 869, 872, 5, 186, 94, 2, 870, 872, 5, 184, 93, 2, 871, 869, 3, 2, 2, 2, 871, 870, 3, 2, 2, 2, 872, 163, 3, 2, 2, 2, 873, 874, 7, 46, 2, 2, 874, 875, 5, 166, 84, 2, 875, 165, 3, 2, 2, 2, 876, 877, 5, 178, 90, 2, 877, 878, 7, 11, 2, 2, 878, 880, 3, 2, 2, 2, 879, 876, 3, 2, 2, 2, 879, 880, 3, 2, 2, 2, 880, 886, 3, 2, 2, 2, 881, 887, 5, 168, 85, 2, 882, 887, 5, 172, 87, 2, 883, 887, 5, 182, 92, 2, 884, 887, 5, 184, 93, 2, 885, 887, 5, 186, 94, 2, 886, 881, 3, 2, 2, 2, 886, 882, 3, 2, 2, 2, 886, 883, 3, 2, 2, 2, 886, 884, 3, 2, 2, 2, 886, 885, 3, 2, 2, 2, 887, 167, 3, 2, 2, 2, 888, 894, 5, 170, 86, 2, 889, 891, 7, 84, 2, 2, 890, 892, 5, 250, 126, 2, 891, 890, 3, 2, 2, 2, 891, 892, 3, 2, 2, 2, 892, 893, 3, 2, 2, 2, 893, 895, 7, 85, 2, 2, 894, 889, 3, 2, 2, 2, 894, 895, 3, 2, 2, 2, 895, 896, 3, 2, 2, 2, 896, 897, 7, 11, 2, 2, 897, 898, 7, 81, 2, 2, 898, 900, 7, 96, 2, 2, 899, 901, 5, 166, 84, 2, 900, 899, 3, 2, 2, 2, 901, 902, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 902, 903, 3, 2, 2, 2, 903, 904, 3, 2, 2, 2, 904, 906, 7, 97, 2, 2, 905, 907, 5, 174, 88, 2, 906, 905, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 169, 3, 2, 2, 2, 908, 909, 9, 5, 2, 2, 909, 171, 3, 2, 2, 2, 910, 911, 5, 180, 91, 2, 911, 912, 7, 4, 2, 2, 912, 914, 3, 2, 2, 2, 913, 910, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 915, 3, 2, 2, 2, 915, 916, 5, 68, 35, 2, 916, 918, 7, 84, 2, 2, 917, 919, 5, 250, 126, 2, 918, 917, 3, 2, 2, 2, 918, 919, 3, 2, 2, 2, 919, 920, 3, 2, 2, 2, 920, 923, 7, 85, 2, 2, 921, 924, 5, 174, 88, 2, 922, 924, 7, 81, 2, 2, 923, 921, 3, 2, 2, 2, 923, 922, 3, 2, 2, 2, 924, 173, 3, 2, 2, 2, 925, 926, 7, 40, 2, 2, 926, 927, 7, 11, 2, 2, 927, 928, 7, 81, 2, 2, 928, 930, 7, 96, 2, 2, 929, 931, 5, 176, 89, 2, 930, 929, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 930, 3, 2, 2, 2, 932, 933, 3, 2, 2, 2, 933, 934, 3, 2, 2, 2, 934, 935, 7, 97, 2, 2, 935, 175, 3, 2, 2, 2, 936, 940, 5, 142, 72, 2, 937, 940, 5, 154, 78, 2, 938, 940, 5, 188, 95, 2, 939, 936, 3, 2, 2, 2, 939, 937, 3, 2, 2, 2, 939, 938, 3, 2, 2, 2, 940, 177, 3, 2, 2, 2, 941, 942, 7, 95, 2, 2, 942, 179, 3, 2, 2, 2, 943, 944, 5, 206, 104, 2, 944, 181, 3, 2, 2, 2, 945, 946, 7, 50, 2, 2, 946, 947, 5, 102, 52, 2, 947, 948, 7, 81, 2, 2, 948, 183, 3, 2, 2, 2, 949, 950, 7, 51, 2, 2, 950, 955, 5, 110, 56, 2, 951, 952, 7, 84, 2, 2, 952, 953, 5, 250, 126, 2, 953, 954, 7, 85, 2, 2, 954, 956, 3, 2, 2, 2, 955, 951, 3, 2, 2, 2, 955, 956, 3, 2, 2, 2, 956, 957, 3, 2, 2, 2, 957, 958, 7, 81, 2, 2, 958, 185, 3, 2, 2, 2, 959, 960, 7, 52, 2, 2, 960, 961, 5, 190, 96, 2, 961, 962, 7, 81, 2, 2, 962, 187, 3, 2, 2, 2, 963, 964, 7, 53, 2, 2, 964, 965, 5, 102, 52, 2, 965, 966, 7, 81, 2, 2, 966, 189, 3, 2, 2, 2, 967, 968, 5, 232, 117, 2, 968, 970, 7, 84, 2, 2, 969, 971, 5, 250, 126, 2, 970, 969, 3, 2, 2, 2, 970, 971, 3, 2, 2, 2, 971, 972, 3, 2, 2, 2, 972, 973, 7, 85, 2, 2, 973, 191, 3, 2, 2, 2, 974, 975, 7, 54, 2, 2, 975, 976, 5, 200, 101, 2, 976, 978, 7, 84, 2, 2, 977, 979, 5, 244, 123, 2, 978, 977, 3, 2, 2, 2, 978, 979, 3, 2, 2, 2, 979, 980, 3, 2, 2, 2, 980, 983, 7, 85, 2, 2, 981, 982, 7, 55, 2, 2, 982, 984, 5, 194, 98, 2, 983, 981, 3, 2, 2, 2, 983, 984, 3, 2, 2, 2, 984, 985, 3, 2, 2, 2, 985, 986, 5, 196, 99, 2, 986, 987, 7, 81, 2, 2, 987, 193, 3, 2, 2, 2, 988, 989, 5, 88, 45, 2, 989, 195, 3, 2, 2, 2, 990, 992, 7, 6, 2, 2, 991, 993, 5, 198, 100, 2, 992, 991, 3, 2, 2, 2, 992, 993, 3, 2, 2, 2, 993, 1005, 3, 2, 2, 2, 994, 995, 7, 56, 2, 2, 995, 1006, 5, 206, 104, 2, 996, 1006, 7, 57, 2, 2, 997, 998, 7, 58, 2, 2, 998, 999, 5, 10, 6, 2, 999, 1001, 7, 84, 2, 2, 1000, 1002, 5, 250, 126, 2, 1001, 1000, 3, 2, 2, 2, 1001, 1002, 3, 2, 2, 2, 1002, 1003, 3, 2, 2, 2, 1003, 1004, 7, 85, 2, 2, 1004, 1006, 3, 2, 2, 2, 1005, 994, 3, 2, 2, 2, 1005, 996, 3, 2, 2, 2, 1005, 997, 3, 2, 2, 2, 1006, 197, 3, 2, 2, 2, 1007, 1008, 7, 59, 2, 2, 1008, 199, 3, 2, 2, 2, 1009, 1010, 7, 95, 2, 2, 1010, 201, 3, 2, 2, 2, 1011, 1012, 9, 6, 2, 2, 1012, 1013, 7, 84, 2, 2, 1013, 1014, 5, 204, 103, 2, 1014, 1015, 7, 85, 2, 2, 1015, 1016, 7, 81, 2, 2, 1016, 203, 3, 2, 2, 2, 1017, 1022, 7, 95, 2, 2, 1018, 1019, 7, 10, 2, 2, 1019, 1020, 7, 56, 2, 2, 1020, 1021, 7, 11, 2, 2, 1021, 1023, 5, 206, 104, 2, 1022, 1018, 3, 2, 2, 2, 1022, 1023, 3, 2, 2, 2, 1023, 1044, 3, 2, 2, 2, 1024, 1025, 7, 10, 2, 2, 1025, 1026, 7, 8, 2, 2, 1026, 1027, 7, 11, 2, 2, 1027, 1043, 7, 95, 2, 2, 1028, 1029, 7, 10, 2, 2, 1029, 1030, 7, 62, 2, 2, 1030, 1031, 7, 11, 2, 2, 1031, 1043, 5, 242, 122, 2, 1032, 1033, 7, 10, 2, 2, 1033, 1034, 7, 37, 2, 2, 1034, 1035, 7, 11, 2, 2, 1035, 1043, 5, 238, 120, 2, 1036, 1037, 7, 10, 2, 2, 1037, 1038, 7, 30, 2, 2, 1038, 1039, 7, 11, 2, 2, 1039, 1043, 5, 110, 56, 2, 1040, 1041, 7, 10, 2, 2, 1041, 1043, 5, 254, 128, 2, 1042, 1024, 3, 2, 2, 2, 1042, 1028, 3, 2, 2, 2, 1042, 1032, 3, 2, 2, 2, 1042, 1036, 3, 2, 2, 2, 1042, 1040, 3, 2, 2, 2, 1043, 1046, 3, 2, 2, 2, 1044, 1042, 3, 2, 2, 2, 1044, 1045, 3, 2, 2, 2, 1045, 205, 3, 2, 2, 2, 1046, 1044, 3, 2, 2, 2, 1047, 1050, 5, 210, 106, 2, 1048, 1050, 5, 208, 105, 2, 1049, 1047, 3, 2, 2, 2, 1049, 1048, 3, 2, 2, 2, 1050, 207, 3, 2, 2, 2, 1051, 1052, 5, 210, 106, 2, 1052, 1053, 7, 63, 2, 2, 1053, 1054, 5, 206, 104, 2, 1054, 1055, 7, 11, 2, 2, 1055, 1056, 5, 206, 104, 2, 1056, 209, 3, 2, 2, 2, 1057, 1062, 5, 212, 107, 2, 1058, 1059, 7, 64, 2, 2, 1059, 1061, 5, 212, 107, 2, 1060, 1058, 3, 2, 2, 2, 1061, 1064, 3, 2, 2, 2, 1062, 1060, 3, 2, 2, 2, 1062, 1063, 3, 2, 2, 2, 1063, 211, 3, 2, 2, 2, 1064, 1062, 3, 2, 2, 2, 1065, 1070, 5, 214, 108, 2, 1066, 1067, 7, 65, 2, 2, 1067, 1069, 5, 214, 108, 2, 1068, 1066, 3, 2, 2, 2, 1069, 1072, 3, 2, 2, 2, 1070, 1068, 3, 2, 2, 2, 1070, 1071, 3, 2, 2, 2, 1071, 213, 3, 2, 2, 2, 1072, 1070, 3, 2, 2, 2, 1073, 1078, 5, 216, 109, 2, 1074, 1075, 7, 66, 2, 2, 1075, 1077, 5, 216, 109, 2, 1076, 1074, 3, 2, 2, 2, 1077, 1080, 3, 2, 2, 2, 1078, 1076, 3, 2, 2, 2, 1078, 1079, 3, 2, 2, 2, 1079, 215, 3, 2, 2, 2, 1080, 1078, 3, 2, 2, 2, 1081, 1082, 7, 67, 2, 2, 1082, 1085, 5, 216, 109, 2, 1083, 1085, 5, 218, 110, 2, 1084, 1081, 3, 2, 2, 2, 1084, 1083, 3, 2, 2, 2, 1085, 217, 3, 2, 2, 2, 1086, 1087, 8, 110, 1, 2, 1087, 1088, 5, 222, 112, 2, 1088, 1095, 3, 2, 2, 2, 1089, 1090, 12, 3, 2, 2, 1090, 1091, 5, 220, 111, 2, 1091, 1092, 5, 222, 112, 2, 1092, 1094, 3, 2, 2, 2, 1093, 1089, 3, 2, 2, 2, 1094, 1097, 3, 2, 2, 2, 1095, 1093, 3, 2, 2, 2, 1095, 1096, 3, 2, 2, 2, 1096, 219, 3, 2, 2, 2, 1097, 1095, 3, 2, 2, 2, 1098, 1099, 9, 7, 2, 2, 1099, 221, 3, 2, 2, 2, 1100, 1101, 8, 112, 1, 2, 1101, 1102, 5, 226, 114, 2, 1102, 1109, 3, 2, 2, 2, 1103, 1104, 12, 3, 2, 2, 1104, 1105, 5, 224, 113, 2, 1105, 1106, 5, 226, 114, 2, 1106, 1108, 3, 2, 2, 2, 1107, 1103, 3, 2, 2, 2, 1108, 1111, 3, 2, 2, 2, 1109, 1107, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 223, 3, 2, 2, 2, 1111, 1109, 3, 2, 2, 2, 1112, 1113, 9, 8, 2, 2, 1113, 225, 3, 2, 2, 2, 1114, 1115, 8, 114, 1, 2, 1115, 1116, 5, 230, 116, 2, 1116, 1123, 3, 2, 2, 2, 1117, 1118, 12, 3, 2, 2, 1118, 1119, 5, 228, 115, 2, 1119, 1120, 5, 230, 116, 2, 1120, 1122, 3, 2, 2, 2, 1121, 1117, 3, 2, 2, 2, 1122, 1125, 3, 2, 2, 2, 1123, 1121, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 227, 3, 2, 2, 2, 1125, 1123, 3, 2, 2, 2, 1126, 1127, 9, 9, 2, 2, 1127, 229, 3, 2, 2, 2, 1128, 1132, 5, 232, 117, 2, 1129, 1130, 7, 75, 2, 2, 1130, 1132, 5, 230, 116, 2, 1131, 1128, 3, 2, 2, 2, 1131, 1129, 3, 2, 2, 2, 1132, 231, 3, 2, 2, 2, 1133, 1134, 8, 117, 1, 2, 1134, 1135, 5, 236, 119, 2, 1135, 1166, 3, 2, 2, 2, 1136, 1137, 12, 7, 2, 2, 1137, 1138, 7, 4, 2, 2, 1138, 1139, 7, 33, 2, 2, 1139, 1140, 7, 84, 2, 2, 1140, 1141, 5, 88, 45, 2, 1141, 1142, 7, 85, 2, 2, 1142, 1165, 3, 2, 2, 2, 1143, 1144, 12, 6, 2, 2, 1144, 1145, 7, 4, 2, 2, 1145, 1146, 7, 6, 2, 2, 1146, 1147, 7, 84, 2, 2, 1147, 1148, 5, 88, 45, 2, 1148, 1149, 7, 85, 2, 2, 1149, 1165, 3, 2, 2, 2, 1150, 1151, 12, 5, 2, 2, 1151, 1152, 7, 82, 2, 2, 1152, 1153, 5, 206, 104, 2, 1153, 1154, 7, 83, 2, 2, 1154, 1165, 3, 2, 2, 2, 1155, 1156, 12, 4, 2, 2, 1156, 1158, 7, 84, 2, 2, 1157, 1159, 5, 250, 126, 2, 1158, 1157, 3, 2, 2, 2, 1158, 1159, 3, 2, 2, 2, 1159, 1160, 3, 2, 2, 2, 1160, 1165, 7, 85, 2, 2, 1161, 1162, 12, 3, 2, 2, 1162, 1163, 7, 4, 2, 2, 1163, 1165, 5, 52, 27, 2, 1164, 1136, 3, 2, 2, 2, 1164, 1143, 3, 2, 2, 2, 1164, 1150, 3, 2, 2, 2, 1164, 1155, 3, 2, 2, 2, 1164, 1161, 3, 2, 2, 2, 1165, 1168, 3, 2, 2, 2, 1166, 1164, 3, 2, 2, 2, 1166, 1167, 3, 2, 2, 2, 1167, 233, 3, 2, 2, 2, 1168, 1166, 3, 2, 2, 2, 1169, 1170, 5, 232, 117, 2, 1170, 1171, 7, 4, 2, 2, 1171, 1172, 5, 52, 27, 2, 1172, 235, 3, 2, 2, 2, 1173, 1181, 5, 238, 120, 2, 1174, 1181, 7, 79, 2, 2, 1175, 1181, 7, 95, 2, 2, 1176, 1177, 7, 84, 2, 2, 1177, 1178, 5, 206, 104, 2, 1178, 1179, 7, 85, 2, 2, 1179, 1181, 3, 2, 2, 2, 1180, 1173, 3, 2, 2, 2, 1180, 1174, 3, 2, 2, 2, 1180, 1175, 3, 2, 2, 2, 1180, 1176, 3, 2, 2, 2, 1181, 237, 3, 2, 2, 2, 1182, 1191, 5, 256, 129, 2, 1183, 1191, 7, 90, 2, 2, 1184, 1191, 5, 258, 130, 2, 1185, 1191, 7, 94, 2, 2, 1186, 1191, 7, 89, 2, 2, 1187, 1191, 5, 46, 24, 2, 1188, 1191, 5, 240, 121, 2, 1189, 1191, 5, 242, 122, 2, 1190, 1182, 3, 2, 2, 2, 1190, 1183, 3, 2, 2, 2, 1190, 1184, 3, 2, 2, 2, 1190, 1185, 3, 2, 2, 2, 1190, 1186, 3, 2, 2, 2, 1190, 1187, 3, 2, 2, 2, 1190, 1188, 3, 2, 2, 2, 1190, 1189, 3, 2, 2, 2, 1191, 239, 3, 2, 2, 2, 1192, 1193, 7, 82, 2, 2, 1193, 1198, 5, 206, 104, 2, 1194, 1195, 7, 10, 2, 2, 1195, 1197, 5, 206, 104, 2, 1196, 1194, 3, 2, 2, 2, 1197, 1200, 3, 2, 2, 2, 1198, 1196, 3, 2, 2, 2, 1198, 1199, 3, 2, 2, 2, 1199, 1201, 3, 2, 2, 2, 1200, 1198, 3, 2, 2, 2, 1201, 1202, 7, 83, 2, 2, 1202, 241, 3, 2, 2, 2, 1203, 1204, 7, 62, 2, 2, 1204, 1205, 7, 84, 2, 2, 1205, 1206, 5, 206, 104, 2, 1206, 1207, 7, 10, 2, 2, 1207, 1208, 5, 206, 104, 2, 1208, 1209, 7, 85, 2, 2, 1209, 1217, 3, 2, 2, 2, 1210, 1211, 7, 82, 2, 2, 1211, 1212, 5, 206, 104, 2, 1212, 1213, 7, 80, 2, 2, 1213, 1214, 5, 206, 104, 2, 1214, 1215, 7, 83, 2, 2, 1215, 1217, 3, 2, 2, 2, 1216, 1203, 3, 2, 2, 2, 1216, 1210, 3, 2, 2, 2, 1217, 243, 3, 2, 2, 2, 1218, 1223, 5, 246, 124, 2, 1219, 1220, 7, 10, 2, 2, 1220, 1222, 5, 246, 124, 2, 1221, 1219, 3, 2, 2, 2, 1222, 1225, 3, 2, 2, 2, 1223, 1221, 3, 2, 2, 2, 1223, 1224, 3, 2, 2, 2, 1224, 245, 3, 2, 2, 2, 1225, 1223, 3, 2, 2, 2, 1226, 1227, 5, 248, 125, 2, 1227, 1228, 7, 11, 2, 2, 1228, 1231, 5, 88, 45, 2, 1229, 1230, 7, 13, 2, 2, 1230, 1232, 5, 136, 69, 2, 1231, 1229, 3, 2, 2, 2, 1231, 1232, 3, 2, 2, 2, 1232, 247, 3, 2, 2, 2, 1233, 1234, 7, 95, 2, 2, 1234, 249, 3, 2, 2, 2, 1235, 1240, 5, 252, 127, 2, 1236, 1237, 7, 10, 2, 2, 1237, 1239, 5, 252, 127, 2, 1238, 1236, 3, 2, 2, 2, 1239, 1242, 3, 2, 2, 2, 1240, 1238, 3, 2, 2, 2, 1240, 1241, 3, 2, 2, 2, 1241, 1247, 3, 2, 2, 2, 1242, 1240, 3, 2, 2, 2, 1243, 1244, 7, 10, 2, 2, 1244, 1246, 5, 254, 128, 2, 1245, 1243, 3, 2, 2, 2, 1246, 1249, 3, 2, 2, 2, 1247, 1245, 3, 2, 2, 2, 1247, 1248, 3, 2, 2, 2, 1248, 1259, 3, 2, 2, 2, 1249, 1247, 3, 2, 2, 2, 1250, 1255, 5, 254, 128, 2, 1251, 1252, 7, 10, 2, 2, 1252, 1254, 5, 254, 128, 2, 1253, 1251, 3, 2, 2, 2, 1254, 1257, 3, 2, 2, 2, 1255, 1253, 3, 2, 2, 2, 1255, 1256, 3, 2, 2, 2, 1256, 1259, 3, 2, 2, 2, 1257, 1255, 3, 2, 2, 2, 1258, 1235, 3, 2, 2, 2, 1258, 1250, 3, 2, 2, 2, 1259, 251, 3, 2, 2, 2, 1260, 1261, 5, 206, 104, 2, 1261, 253, 3, 2, 2, 2, 1262, 1263, 5, 248, 125, 2, 1263, 1264, 7, 11, 2, 2, 1264, 1265, 5, 206, 104, 2, 1265, 255, 3, 2, 2, 2, 1266, 1269, 7, 90, 2, 2, 1267, 1269, 5, 258, 130, 2, 1268, 1266, 3, 2, 2, 2, 1268, 1267, 3, 2, 2, 2, 1269, 1270, 3, 2, 2, 2, 1270, 1271, 7, 95, 2, 2, 1271, 257, 3, 2, 2, 2, 1272, 1273, 9, 10, 2, 2, 1273, 259, 3, 2, 2, 2, 124, 263, 269, 281, 285, 295, 309, 341, 345, 354, 366, 372, 383, 392, 403, 416, 420, 422, 430, 435, 442, 457, 461, 463, 471, 476, 483, 496, 500, 502, 509, 511, 516, 524, 529, 544, 548, 550, 557, 559, 564, 570, 575, 583, 588, 594, 605, 619, 625, 631, 638, 643, 661, 665, 671, 675, 678, 693, 702, 727, 737, 744, 751, 755, 763, 771, 773, 784, 797, 803, 807, 812, 830, 834, 838, 843, 855, 865, 871, 879, 886, 891, 894, 902, 906, 913, 918, 923, 932, 939, 955, 970, 978, 983, 992, 1001, 1005, 1022, 1042, 1044, 1049, 1062, 1070, 1078, 1084, 1095, 1109, 1123, 1131, 1158, 1164, 1166, 1180, 1190, 1198, 1216, 1223, 1231, 1240, 1247, 1255, 1258, 1268]
\ No newline at end of file
diff --git a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2.tokens b/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2.tokens
deleted file mode 100644
index c8f280c..0000000
--- a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2.tokens
+++ /dev/null
@@ -1,177 +0,0 @@
-T__0=1
-T__1=2
-T__2=3
-T__3=4
-T__4=5
-T__5=6
-T__6=7
-T__7=8
-T__8=9
-T__9=10
-T__10=11
-T__11=12
-T__12=13
-T__13=14
-T__14=15
-T__15=16
-T__16=17
-T__17=18
-T__18=19
-T__19=20
-T__20=21
-T__21=22
-T__22=23
-T__23=24
-T__24=25
-T__25=26
-T__26=27
-T__27=28
-T__28=29
-T__29=30
-T__30=31
-T__31=32
-T__32=33
-T__33=34
-T__34=35
-T__35=36
-T__36=37
-T__37=38
-T__38=39
-T__39=40
-T__40=41
-T__41=42
-T__42=43
-T__43=44
-T__44=45
-T__45=46
-T__46=47
-T__47=48
-T__48=49
-T__49=50
-T__50=51
-T__51=52
-T__52=53
-T__53=54
-T__54=55
-T__55=56
-T__56=57
-T__57=58
-T__58=59
-T__59=60
-T__60=61
-T__61=62
-T__62=63
-T__63=64
-T__64=65
-T__65=66
-T__66=67
-T__67=68
-T__68=69
-T__69=70
-T__70=71
-T__71=72
-T__72=73
-T__73=74
-T__74=75
-T__75=76
-T__76=77
-T__77=78
-NEWLINE=79
-OPEN_BRACK=80
-CLOSE_BRACK=81
-OPEN_PAREN=82
-CLOSE_PAREN=83
-SKIP_=84
-BLOCK_COMMENT=85
-LINE_COMMENT=86
-StringLiteral=87
-FloatLiteral=88
-UintLiteral=89
-HexUintLiteral=90
-IntLiteral=91
-BoolLiteral=92
-Identifier=93
-INDENT=94
-DEDENT=95
-'import'=1
-'.'=2
-'type'=3
-'is'=4
-'SI'=5
-'unit'=6
-'of'=7
-','=8
-':'=9
-'enum'=10
-'='=11
-'!'=12
-'struct'=13
-'inherits'=14
-'=='=15
-'actor'=16
-'scenario'=17
-'action'=18
-'modifier'=19
-'extend'=20
-'global'=21
-'list'=22
-'int'=23
-'uint'=24
-'float'=25
-'bool'=26
-'string'=27
-'event'=28
-'if'=29
-'@'=30
-'as'=31
-'rise'=32
-'fall'=33
-'elapsed'=34
-'every'=35
-'var'=36
-'sample'=37
-'with'=38
-'keep'=39
-'default'=40
-'hard'=41
-'remove_default'=42
-'on'=43
-'do'=44
-'serial'=45
-'one_of'=46
-'parallel'=47
-'wait'=48
-'emit'=49
-'call'=50
-'until'=51
-'def'=52
-'->'=53
-'expression'=54
-'undefined'=55
-'external'=56
-'only'=57
-'cover'=58
-'record'=59
-'range'=60
-'?'=61
-'=>'=62
-'or'=63
-'and'=64
-'not'=65
-'!='=66
-'<'=67
-'<='=68
-'>'=69
-'>='=70
-'in'=71
-'+'=72
-'-'=73
-'*'=74
-'/'=75
-'%'=76
-'it'=77
-'..'=78
-'['=80
-']'=81
-'('=82
-')'=83
diff --git a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.interp b/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.interp
deleted file mode 100644
index bce65b8..0000000
--- a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.interp
+++ /dev/null
@@ -1,311 +0,0 @@
-token literal names:
-null
-'import'
-'.'
-'type'
-'is'
-'SI'
-'unit'
-'of'
-','
-':'
-'enum'
-'='
-'!'
-'struct'
-'inherits'
-'=='
-'actor'
-'scenario'
-'action'
-'modifier'
-'extend'
-'global'
-'list'
-'int'
-'uint'
-'float'
-'bool'
-'string'
-'event'
-'if'
-'@'
-'as'
-'rise'
-'fall'
-'elapsed'
-'every'
-'var'
-'sample'
-'with'
-'keep'
-'default'
-'hard'
-'remove_default'
-'on'
-'do'
-'serial'
-'one_of'
-'parallel'
-'wait'
-'emit'
-'call'
-'until'
-'def'
-'->'
-'expression'
-'undefined'
-'external'
-'only'
-'cover'
-'record'
-'range'
-'?'
-'=>'
-'or'
-'and'
-'not'
-'!='
-'<'
-'<='
-'>'
-'>='
-'in'
-'+'
-'-'
-'*'
-'/'
-'%'
-'it'
-'..'
-null
-'['
-']'
-'('
-')'
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-
-token symbolic names:
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-NEWLINE
-OPEN_BRACK
-CLOSE_BRACK
-OPEN_PAREN
-CLOSE_PAREN
-SKIP_
-BLOCK_COMMENT
-LINE_COMMENT
-StringLiteral
-FloatLiteral
-UintLiteral
-HexUintLiteral
-IntLiteral
-BoolLiteral
-Identifier
-
-rule names:
-T__0
-T__1
-T__2
-T__3
-T__4
-T__5
-T__6
-T__7
-T__8
-T__9
-T__10
-T__11
-T__12
-T__13
-T__14
-T__15
-T__16
-T__17
-T__18
-T__19
-T__20
-T__21
-T__22
-T__23
-T__24
-T__25
-T__26
-T__27
-T__28
-T__29
-T__30
-T__31
-T__32
-T__33
-T__34
-T__35
-T__36
-T__37
-T__38
-T__39
-T__40
-T__41
-T__42
-T__43
-T__44
-T__45
-T__46
-T__47
-T__48
-T__49
-T__50
-T__51
-T__52
-T__53
-T__54
-T__55
-T__56
-T__57
-T__58
-T__59
-T__60
-T__61
-T__62
-T__63
-T__64
-T__65
-T__66
-T__67
-T__68
-T__69
-T__70
-T__71
-T__72
-T__73
-T__74
-T__75
-T__76
-T__77
-NEWLINE
-OPEN_BRACK
-CLOSE_BRACK
-OPEN_PAREN
-CLOSE_PAREN
-SKIP_
-SPACES
-LINE_JOINING
-RN
-BLOCK_COMMENT
-LINE_COMMENT
-StringLiteral
-Shortstring
-ShortstringElem
-ShortstringChar
-Longstring
-LongstringElem
-LongstringChar
-StringEscapeSeq
-FloatLiteral
-UintLiteral
-HexUintLiteral
-IntLiteral
-BoolLiteral
-Identifier
-NonVerticalLineChar
-Digit
-HexDigit
-IdStartChar
-IdChar
-
-channel names:
-DEFAULT_TOKEN_CHANNEL
-HIDDEN
-
-mode names:
-DEFAULT_MODE
-
-atn:
-[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 95, 832, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 5, 80, 606, 10, 80, 3, 80, 3, 80, 5, 80, 610, 10, 80, 3, 80, 5, 80, 613, 10, 80, 5, 80, 615, 10, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 5, 85, 633, 10, 85, 3, 85, 3, 85, 3, 86, 6, 86, 638, 10, 86, 13, 86, 14, 86, 639, 3, 87, 3, 87, 5, 87, 644, 10, 87, 3, 87, 5, 87, 647, 10, 87, 3, 87, 3, 87, 3, 88, 5, 88, 652, 10, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 7, 89, 660, 10, 89, 12, 89, 14, 89, 663, 11, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 7, 90, 672, 10, 90, 12, 90, 14, 90, 675, 11, 90, 3, 90, 3, 90, 3, 91, 3, 91, 5, 91, 681, 10, 91, 3, 92, 3, 92, 7, 92, 685, 10, 92, 12, 92, 14, 92, 688, 11, 92, 3, 92, 3, 92, 3, 92, 7, 92, 693, 10, 92, 12, 92, 14, 92, 696, 11, 92, 3, 92, 5, 92, 699, 10, 92, 3, 93, 3, 93, 5, 93, 703, 10, 93, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 7, 95, 712, 10, 95, 12, 95, 14, 95, 715, 11, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 7, 95, 725, 10, 95, 12, 95, 14, 95, 728, 11, 95, 3, 95, 3, 95, 3, 95, 5, 95, 733, 10, 95, 3, 96, 3, 96, 5, 96, 737, 10, 96, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 745, 10, 98, 3, 99, 5, 99, 748, 10, 99, 3, 99, 7, 99, 751, 10, 99, 12, 99, 14, 99, 754, 11, 99, 3, 99, 3, 99, 6, 99, 758, 10, 99, 13, 99, 14, 99, 759, 3, 99, 3, 99, 5, 99, 764, 10, 99, 3, 99, 6, 99, 767, 10, 99, 13, 99, 14, 99, 768, 5, 99, 771, 10, 99, 3, 100, 6, 100, 774, 10, 100, 13, 100, 14, 100, 775, 3, 101, 3, 101, 3, 101, 3, 101, 6, 101, 782, 10, 101, 13, 101, 14, 101, 783, 3, 102, 3, 102, 6, 102, 788, 10, 102, 13, 102, 14, 102, 789, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 801, 10, 103, 3, 104, 3, 104, 7, 104, 805, 10, 104, 12, 104, 14, 104, 808, 11, 104, 3, 104, 3, 104, 6, 104, 812, 10, 104, 13, 104, 14, 104, 813, 3, 104, 3, 104, 5, 104, 818, 10, 104, 3, 105, 3, 105, 3, 106, 3, 106, 3, 107, 3, 107, 3, 108, 5, 108, 827, 10, 108, 3, 109, 3, 109, 5, 109, 831, 10, 109, 3, 661, 2, 110, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 2, 173, 2, 175, 2, 177, 87, 179, 88, 181, 89, 183, 2, 185, 2, 187, 2, 189, 2, 191, 2, 193, 2, 195, 2, 197, 90, 199, 91, 201, 92, 203, 93, 205, 94, 207, 95, 209, 2, 211, 2, 213, 2, 215, 2, 217, 2, 3, 2, 13, 4, 2, 11, 11, 34, 34, 4, 2, 12, 12, 14, 15, 7, 2, 12, 12, 15, 15, 36, 36, 41, 41, 94, 94, 3, 2, 94, 94, 4, 2, 45, 45, 47, 47, 4, 2, 71, 71, 103, 103, 3, 2, 126, 126, 3, 2, 50, 59, 5, 2, 50, 59, 67, 72, 99, 104, 297, 2, 67, 92, 97, 97, 99, 124, 172, 172, 183, 183, 188, 188, 194, 216, 218, 248, 250, 579, 594, 707, 712, 723, 738, 742, 752, 752, 892, 892, 904, 904, 906, 908, 910, 910, 912, 931, 933, 976, 978, 1015, 1017, 1155, 1164, 1232, 1234, 1275, 1282, 1297, 1331, 1368, 1371, 1371, 1379, 1417, 1490, 1516, 1522, 1524, 1571, 1596, 1602, 1612, 1648, 1649, 1651, 1749, 1751, 1751, 1767, 1768, 1776, 1777, 1788, 1790, 1793, 1793, 1810, 1810, 1812, 1841, 1871, 1903, 1922, 1959, 1971, 1971, 2310, 2363, 2367, 2367, 2386, 2386, 2394, 2403, 2431, 2431, 2439, 2446, 2449, 2450, 2453, 2474, 2476, 2482, 2484, 2484, 2488, 2491, 2495, 2495, 2512, 2512, 2526, 2527, 2529, 2531, 2546, 2547, 2567, 2572, 2577, 2578, 2581, 2602, 2604, 2610, 2612, 2613, 2615, 2616, 2618, 2619, 2651, 2654, 2656, 2656, 2676, 2678, 2695, 2703, 2705, 2707, 2709, 2730, 2732, 2738, 2740, 2741, 2743, 2747, 2751, 2751, 2770, 2770, 2786, 2787, 2823, 2830, 2833, 2834, 2837, 2858, 2860, 2866, 2868, 2869, 2871, 2875, 2879, 2879, 2910, 2911, 2913, 2915, 2931, 2931, 2949, 2949, 2951, 2956, 2960, 2962, 2964, 2967, 2971, 2972, 2974, 2974, 2976, 2977, 2981, 2982, 2986, 2988, 2992, 3003, 3079, 3086, 3088, 3090, 3092, 3114, 3116, 3125, 3127, 3131, 3170, 3171, 3207, 3214, 3216, 3218, 3220, 3242, 3244, 3253, 3255, 3259, 3263, 3263, 3296, 3296, 3298, 3299, 3335, 3342, 3344, 3346, 3348, 3370, 3372, 3387, 3426, 3427, 3463, 3480, 3484, 3507, 3509, 3517, 3519, 3519, 3522, 3528, 3587, 3634, 3636, 3637, 3650, 3656, 3715, 3716, 3718, 3718, 3721, 3722, 3724, 3724, 3727, 3727, 3734, 3737, 3739, 3745, 3747, 3749, 3751, 3751, 3753, 3753, 3756, 3757, 3759, 3762, 3764, 3765, 3775, 3775, 3778, 3782, 3784, 3784, 3806, 3807, 3842, 3842, 3906, 3913, 3915, 3948, 3978, 3981, 4098, 4131, 4133, 4137, 4139, 4140, 4178, 4183, 4258, 4295, 4306, 4348, 4350, 4350, 4354, 4443, 4449, 4516, 4522, 4603, 4610, 4682, 4684, 4687, 4690, 4696, 4698, 4698, 4700, 4703, 4706, 4746, 4748, 4751, 4754, 4786, 4788, 4791, 4794, 4800, 4802, 4802, 4804, 4807, 4810, 4824, 4826, 4882, 4884, 4887, 4890, 4956, 4994, 5009, 5026, 5110, 5123, 5742, 5745, 5752, 5763, 5788, 5794, 5868, 5872, 5874, 5890, 5902, 5904, 5907, 5922, 5939, 5954, 5971, 5986, 5998, 6000, 6002, 6018, 6069, 6105, 6105, 6110, 6110, 6178, 6265, 6274, 6314, 6402, 6430, 6482, 6511, 6514, 6518, 6530, 6571, 6595, 6601, 6658, 6680, 7426, 7617, 7682, 7837, 7842, 7931, 7938, 7959, 7962, 7967, 7970, 8007, 8010, 8015, 8018, 8025, 8027, 8027, 8029, 8029, 8031, 8031, 8033, 8063, 8066, 8118, 8120, 8126, 8128, 8128, 8132, 8134, 8136, 8142, 8146, 8149, 8152, 8157, 8162, 8174, 8180, 8182, 8184, 8190, 8307, 8307, 8321, 8321, 8338, 8342, 8452, 8452, 8457, 8457, 8460, 8469, 8471, 8471, 8474, 8479, 8486, 8486, 8488, 8488, 8490, 8490, 8492, 8499, 8501, 8507, 8510, 8513, 8519, 8523, 8546, 8581, 11266, 11312, 11314, 11360, 11394, 11494, 11522, 11559, 11570, 11623, 11633, 11633, 11650, 11672, 11682, 11688, 11690, 11696, 11698, 11704, 11706, 11712, 11714, 11720, 11722, 11728, 11730, 11736, 11738, 11744, 12295, 12297, 12323, 12331, 12339, 12343, 12346, 12350, 12355, 12440, 12445, 12449, 12451, 12540, 12542, 12545, 12551, 12590, 12595, 12688, 12706, 12729, 12786, 12801, 13314, 19895, 19970, 40893, 40962, 42126, 43010, 43011, 43013, 43015, 43017, 43020, 43022, 43044, 44034, 55205, 63746, 64047, 64050, 64108, 64114, 64219, 64258, 64264, 64277, 64281, 64287, 64287, 64289, 64298, 64300, 64312, 64314, 64318, 64320, 64320, 64322, 64323, 64325, 64326, 64328, 64435, 64469, 64831, 64850, 64913, 64916, 64969, 65010, 65021, 65138, 65142, 65144, 65278, 65315, 65340, 65347, 65372, 65384, 65472, 65476, 65481, 65484, 65489, 65492, 65497, 65500, 65502, 150, 2, 50, 59, 770, 881, 1157, 1160, 1427, 1467, 1469, 1471, 1473, 1473, 1475, 1476, 1478, 1479, 1481, 1481, 1554, 1559, 1613, 1632, 1634, 1643, 1650, 1650, 1752, 1758, 1761, 1766, 1769, 1770, 1772, 1775, 1778, 1787, 1811, 1811, 1842, 1868, 1960, 1970, 2307, 2309, 2366, 2366, 2368, 2383, 2387, 2390, 2404, 2405, 2408, 2417, 2435, 2437, 2494, 2494, 2496, 2502, 2505, 2506, 2509, 2511, 2521, 2521, 2532, 2533, 2536, 2545, 2563, 2565, 2622, 2622, 2624, 2628, 2633, 2634, 2637, 2639, 2664, 2675, 2691, 2693, 2750, 2750, 2752, 2759, 2761, 2763, 2765, 2767, 2788, 2789, 2792, 2801, 2819, 2821, 2878, 2878, 2880, 2885, 2889, 2890, 2893, 2895, 2904, 2905, 2920, 2929, 2948, 2948, 3008, 3012, 3016, 3018, 3020, 3023, 3033, 3033, 3048, 3057, 3075, 3077, 3136, 3142, 3144, 3146, 3148, 3151, 3159, 3160, 3176, 3185, 3204, 3205, 3262, 3262, 3264, 3270, 3272, 3274, 3276, 3279, 3287, 3288, 3304, 3313, 3332, 3333, 3392, 3397, 3400, 3402, 3404, 3407, 3417, 3417, 3432, 3441, 3460, 3461, 3532, 3532, 3537, 3542, 3544, 3544, 3546, 3553, 3572, 3573, 3635, 3635, 3638, 3644, 3657, 3664, 3666, 3675, 3763, 3763, 3766, 3771, 3773, 3774, 3786, 3791, 3794, 3803, 3866, 3867, 3874, 3883, 3895, 3895, 3897, 3897, 3899, 3899, 3904, 3905, 3955, 3974, 3976, 3977, 3986, 3993, 3995, 4030, 4040, 4040, 4142, 4148, 4152, 4155, 4162, 4171, 4184, 4187, 4961, 4961, 4971, 4979, 5908, 5910, 5940, 5942, 5972, 5973, 6004, 6005, 6072, 6101, 6111, 6111, 6114, 6123, 6157, 6159, 6162, 6171, 6315, 6315, 6434, 6445, 6450, 6461, 6472, 6481, 6578, 6594, 6602, 6603, 6610, 6619, 6681, 6685, 7618, 7621, 8257, 8258, 8278, 8278, 8402, 8414, 8419, 8419, 8423, 8429, 12332, 12337, 12443, 12444, 43012, 43012, 43016, 43016, 43021, 43021, 43045, 43049, 64288, 64288, 65026, 65041, 65058, 65061, 65077, 65078, 65103, 65105, 65298, 65307, 65345, 65345, 2, 851, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 3, 219, 3, 2, 2, 2, 5, 226, 3, 2, 2, 2, 7, 228, 3, 2, 2, 2, 9, 233, 3, 2, 2, 2, 11, 236, 3, 2, 2, 2, 13, 239, 3, 2, 2, 2, 15, 244, 3, 2, 2, 2, 17, 247, 3, 2, 2, 2, 19, 249, 3, 2, 2, 2, 21, 251, 3, 2, 2, 2, 23, 256, 3, 2, 2, 2, 25, 258, 3, 2, 2, 2, 27, 260, 3, 2, 2, 2, 29, 267, 3, 2, 2, 2, 31, 276, 3, 2, 2, 2, 33, 279, 3, 2, 2, 2, 35, 285, 3, 2, 2, 2, 37, 294, 3, 2, 2, 2, 39, 301, 3, 2, 2, 2, 41, 310, 3, 2, 2, 2, 43, 317, 3, 2, 2, 2, 45, 324, 3, 2, 2, 2, 47, 329, 3, 2, 2, 2, 49, 333, 3, 2, 2, 2, 51, 338, 3, 2, 2, 2, 53, 344, 3, 2, 2, 2, 55, 349, 3, 2, 2, 2, 57, 356, 3, 2, 2, 2, 59, 362, 3, 2, 2, 2, 61, 365, 3, 2, 2, 2, 63, 367, 3, 2, 2, 2, 65, 370, 3, 2, 2, 2, 67, 375, 3, 2, 2, 2, 69, 380, 3, 2, 2, 2, 71, 388, 3, 2, 2, 2, 73, 394, 3, 2, 2, 2, 75, 398, 3, 2, 2, 2, 77, 405, 3, 2, 2, 2, 79, 410, 3, 2, 2, 2, 81, 415, 3, 2, 2, 2, 83, 423, 3, 2, 2, 2, 85, 428, 3, 2, 2, 2, 87, 443, 3, 2, 2, 2, 89, 446, 3, 2, 2, 2, 91, 449, 3, 2, 2, 2, 93, 456, 3, 2, 2, 2, 95, 463, 3, 2, 2, 2, 97, 472, 3, 2, 2, 2, 99, 477, 3, 2, 2, 2, 101, 482, 3, 2, 2, 2, 103, 487, 3, 2, 2, 2, 105, 493, 3, 2, 2, 2, 107, 497, 3, 2, 2, 2, 109, 500, 3, 2, 2, 2, 111, 511, 3, 2, 2, 2, 113, 521, 3, 2, 2, 2, 115, 530, 3, 2, 2, 2, 117, 535, 3, 2, 2, 2, 119, 541, 3, 2, 2, 2, 121, 548, 3, 2, 2, 2, 123, 554, 3, 2, 2, 2, 125, 556, 3, 2, 2, 2, 127, 559, 3, 2, 2, 2, 129, 562, 3, 2, 2, 2, 131, 566, 3, 2, 2, 2, 133, 570, 3, 2, 2, 2, 135, 573, 3, 2, 2, 2, 137, 575, 3, 2, 2, 2, 139, 578, 3, 2, 2, 2, 141, 580, 3, 2, 2, 2, 143, 583, 3, 2, 2, 2, 145, 586, 3, 2, 2, 2, 147, 588, 3, 2, 2, 2, 149, 590, 3, 2, 2, 2, 151, 592, 3, 2, 2, 2, 153, 594, 3, 2, 2, 2, 155, 596, 3, 2, 2, 2, 157, 599, 3, 2, 2, 2, 159, 614, 3, 2, 2, 2, 161, 618, 3, 2, 2, 2, 163, 621, 3, 2, 2, 2, 165, 624, 3, 2, 2, 2, 167, 627, 3, 2, 2, 2, 169, 632, 3, 2, 2, 2, 171, 637, 3, 2, 2, 2, 173, 641, 3, 2, 2, 2, 175, 651, 3, 2, 2, 2, 177, 655, 3, 2, 2, 2, 179, 669, 3, 2, 2, 2, 181, 680, 3, 2, 2, 2, 183, 698, 3, 2, 2, 2, 185, 702, 3, 2, 2, 2, 187, 704, 3, 2, 2, 2, 189, 732, 3, 2, 2, 2, 191, 736, 3, 2, 2, 2, 193, 738, 3, 2, 2, 2, 195, 744, 3, 2, 2, 2, 197, 747, 3, 2, 2, 2, 199, 773, 3, 2, 2, 2, 201, 777, 3, 2, 2, 2, 203, 785, 3, 2, 2, 2, 205, 800, 3, 2, 2, 2, 207, 817, 3, 2, 2, 2, 209, 819, 3, 2, 2, 2, 211, 821, 3, 2, 2, 2, 213, 823, 3, 2, 2, 2, 215, 826, 3, 2, 2, 2, 217, 830, 3, 2, 2, 2, 219, 220, 7, 107, 2, 2, 220, 221, 7, 111, 2, 2, 221, 222, 7, 114, 2, 2, 222, 223, 7, 113, 2, 2, 223, 224, 7, 116, 2, 2, 224, 225, 7, 118, 2, 2, 225, 4, 3, 2, 2, 2, 226, 227, 7, 48, 2, 2, 227, 6, 3, 2, 2, 2, 228, 229, 7, 118, 2, 2, 229, 230, 7, 123, 2, 2, 230, 231, 7, 114, 2, 2, 231, 232, 7, 103, 2, 2, 232, 8, 3, 2, 2, 2, 233, 234, 7, 107, 2, 2, 234, 235, 7, 117, 2, 2, 235, 10, 3, 2, 2, 2, 236, 237, 7, 85, 2, 2, 237, 238, 7, 75, 2, 2, 238, 12, 3, 2, 2, 2, 239, 240, 7, 119, 2, 2, 240, 241, 7, 112, 2, 2, 241, 242, 7, 107, 2, 2, 242, 243, 7, 118, 2, 2, 243, 14, 3, 2, 2, 2, 244, 245, 7, 113, 2, 2, 245, 246, 7, 104, 2, 2, 246, 16, 3, 2, 2, 2, 247, 248, 7, 46, 2, 2, 248, 18, 3, 2, 2, 2, 249, 250, 7, 60, 2, 2, 250, 20, 3, 2, 2, 2, 251, 252, 7, 103, 2, 2, 252, 253, 7, 112, 2, 2, 253, 254, 7, 119, 2, 2, 254, 255, 7, 111, 2, 2, 255, 22, 3, 2, 2, 2, 256, 257, 7, 63, 2, 2, 257, 24, 3, 2, 2, 2, 258, 259, 7, 35, 2, 2, 259, 26, 3, 2, 2, 2, 260, 261, 7, 117, 2, 2, 261, 262, 7, 118, 2, 2, 262, 263, 7, 116, 2, 2, 263, 264, 7, 119, 2, 2, 264, 265, 7, 101, 2, 2, 265, 266, 7, 118, 2, 2, 266, 28, 3, 2, 2, 2, 267, 268, 7, 107, 2, 2, 268, 269, 7, 112, 2, 2, 269, 270, 7, 106, 2, 2, 270, 271, 7, 103, 2, 2, 271, 272, 7, 116, 2, 2, 272, 273, 7, 107, 2, 2, 273, 274, 7, 118, 2, 2, 274, 275, 7, 117, 2, 2, 275, 30, 3, 2, 2, 2, 276, 277, 7, 63, 2, 2, 277, 278, 7, 63, 2, 2, 278, 32, 3, 2, 2, 2, 279, 280, 7, 99, 2, 2, 280, 281, 7, 101, 2, 2, 281, 282, 7, 118, 2, 2, 282, 283, 7, 113, 2, 2, 283, 284, 7, 116, 2, 2, 284, 34, 3, 2, 2, 2, 285, 286, 7, 117, 2, 2, 286, 287, 7, 101, 2, 2, 287, 288, 7, 103, 2, 2, 288, 289, 7, 112, 2, 2, 289, 290, 7, 99, 2, 2, 290, 291, 7, 116, 2, 2, 291, 292, 7, 107, 2, 2, 292, 293, 7, 113, 2, 2, 293, 36, 3, 2, 2, 2, 294, 295, 7, 99, 2, 2, 295, 296, 7, 101, 2, 2, 296, 297, 7, 118, 2, 2, 297, 298, 7, 107, 2, 2, 298, 299, 7, 113, 2, 2, 299, 300, 7, 112, 2, 2, 300, 38, 3, 2, 2, 2, 301, 302, 7, 111, 2, 2, 302, 303, 7, 113, 2, 2, 303, 304, 7, 102, 2, 2, 304, 305, 7, 107, 2, 2, 305, 306, 7, 104, 2, 2, 306, 307, 7, 107, 2, 2, 307, 308, 7, 103, 2, 2, 308, 309, 7, 116, 2, 2, 309, 40, 3, 2, 2, 2, 310, 311, 7, 103, 2, 2, 311, 312, 7, 122, 2, 2, 312, 313, 7, 118, 2, 2, 313, 314, 7, 103, 2, 2, 314, 315, 7, 112, 2, 2, 315, 316, 7, 102, 2, 2, 316, 42, 3, 2, 2, 2, 317, 318, 7, 105, 2, 2, 318, 319, 7, 110, 2, 2, 319, 320, 7, 113, 2, 2, 320, 321, 7, 100, 2, 2, 321, 322, 7, 99, 2, 2, 322, 323, 7, 110, 2, 2, 323, 44, 3, 2, 2, 2, 324, 325, 7, 110, 2, 2, 325, 326, 7, 107, 2, 2, 326, 327, 7, 117, 2, 2, 327, 328, 7, 118, 2, 2, 328, 46, 3, 2, 2, 2, 329, 330, 7, 107, 2, 2, 330, 331, 7, 112, 2, 2, 331, 332, 7, 118, 2, 2, 332, 48, 3, 2, 2, 2, 333, 334, 7, 119, 2, 2, 334, 335, 7, 107, 2, 2, 335, 336, 7, 112, 2, 2, 336, 337, 7, 118, 2, 2, 337, 50, 3, 2, 2, 2, 338, 339, 7, 104, 2, 2, 339, 340, 7, 110, 2, 2, 340, 341, 7, 113, 2, 2, 341, 342, 7, 99, 2, 2, 342, 343, 7, 118, 2, 2, 343, 52, 3, 2, 2, 2, 344, 345, 7, 100, 2, 2, 345, 346, 7, 113, 2, 2, 346, 347, 7, 113, 2, 2, 347, 348, 7, 110, 2, 2, 348, 54, 3, 2, 2, 2, 349, 350, 7, 117, 2, 2, 350, 351, 7, 118, 2, 2, 351, 352, 7, 116, 2, 2, 352, 353, 7, 107, 2, 2, 353, 354, 7, 112, 2, 2, 354, 355, 7, 105, 2, 2, 355, 56, 3, 2, 2, 2, 356, 357, 7, 103, 2, 2, 357, 358, 7, 120, 2, 2, 358, 359, 7, 103, 2, 2, 359, 360, 7, 112, 2, 2, 360, 361, 7, 118, 2, 2, 361, 58, 3, 2, 2, 2, 362, 363, 7, 107, 2, 2, 363, 364, 7, 104, 2, 2, 364, 60, 3, 2, 2, 2, 365, 366, 7, 66, 2, 2, 366, 62, 3, 2, 2, 2, 367, 368, 7, 99, 2, 2, 368, 369, 7, 117, 2, 2, 369, 64, 3, 2, 2, 2, 370, 371, 7, 116, 2, 2, 371, 372, 7, 107, 2, 2, 372, 373, 7, 117, 2, 2, 373, 374, 7, 103, 2, 2, 374, 66, 3, 2, 2, 2, 375, 376, 7, 104, 2, 2, 376, 377, 7, 99, 2, 2, 377, 378, 7, 110, 2, 2, 378, 379, 7, 110, 2, 2, 379, 68, 3, 2, 2, 2, 380, 381, 7, 103, 2, 2, 381, 382, 7, 110, 2, 2, 382, 383, 7, 99, 2, 2, 383, 384, 7, 114, 2, 2, 384, 385, 7, 117, 2, 2, 385, 386, 7, 103, 2, 2, 386, 387, 7, 102, 2, 2, 387, 70, 3, 2, 2, 2, 388, 389, 7, 103, 2, 2, 389, 390, 7, 120, 2, 2, 390, 391, 7, 103, 2, 2, 391, 392, 7, 116, 2, 2, 392, 393, 7, 123, 2, 2, 393, 72, 3, 2, 2, 2, 394, 395, 7, 120, 2, 2, 395, 396, 7, 99, 2, 2, 396, 397, 7, 116, 2, 2, 397, 74, 3, 2, 2, 2, 398, 399, 7, 117, 2, 2, 399, 400, 7, 99, 2, 2, 400, 401, 7, 111, 2, 2, 401, 402, 7, 114, 2, 2, 402, 403, 7, 110, 2, 2, 403, 404, 7, 103, 2, 2, 404, 76, 3, 2, 2, 2, 405, 406, 7, 121, 2, 2, 406, 407, 7, 107, 2, 2, 407, 408, 7, 118, 2, 2, 408, 409, 7, 106, 2, 2, 409, 78, 3, 2, 2, 2, 410, 411, 7, 109, 2, 2, 411, 412, 7, 103, 2, 2, 412, 413, 7, 103, 2, 2, 413, 414, 7, 114, 2, 2, 414, 80, 3, 2, 2, 2, 415, 416, 7, 102, 2, 2, 416, 417, 7, 103, 2, 2, 417, 418, 7, 104, 2, 2, 418, 419, 7, 99, 2, 2, 419, 420, 7, 119, 2, 2, 420, 421, 7, 110, 2, 2, 421, 422, 7, 118, 2, 2, 422, 82, 3, 2, 2, 2, 423, 424, 7, 106, 2, 2, 424, 425, 7, 99, 2, 2, 425, 426, 7, 116, 2, 2, 426, 427, 7, 102, 2, 2, 427, 84, 3, 2, 2, 2, 428, 429, 7, 116, 2, 2, 429, 430, 7, 103, 2, 2, 430, 431, 7, 111, 2, 2, 431, 432, 7, 113, 2, 2, 432, 433, 7, 120, 2, 2, 433, 434, 7, 103, 2, 2, 434, 435, 7, 97, 2, 2, 435, 436, 7, 102, 2, 2, 436, 437, 7, 103, 2, 2, 437, 438, 7, 104, 2, 2, 438, 439, 7, 99, 2, 2, 439, 440, 7, 119, 2, 2, 440, 441, 7, 110, 2, 2, 441, 442, 7, 118, 2, 2, 442, 86, 3, 2, 2, 2, 443, 444, 7, 113, 2, 2, 444, 445, 7, 112, 2, 2, 445, 88, 3, 2, 2, 2, 446, 447, 7, 102, 2, 2, 447, 448, 7, 113, 2, 2, 448, 90, 3, 2, 2, 2, 449, 450, 7, 117, 2, 2, 450, 451, 7, 103, 2, 2, 451, 452, 7, 116, 2, 2, 452, 453, 7, 107, 2, 2, 453, 454, 7, 99, 2, 2, 454, 455, 7, 110, 2, 2, 455, 92, 3, 2, 2, 2, 456, 457, 7, 113, 2, 2, 457, 458, 7, 112, 2, 2, 458, 459, 7, 103, 2, 2, 459, 460, 7, 97, 2, 2, 460, 461, 7, 113, 2, 2, 461, 462, 7, 104, 2, 2, 462, 94, 3, 2, 2, 2, 463, 464, 7, 114, 2, 2, 464, 465, 7, 99, 2, 2, 465, 466, 7, 116, 2, 2, 466, 467, 7, 99, 2, 2, 467, 468, 7, 110, 2, 2, 468, 469, 7, 110, 2, 2, 469, 470, 7, 103, 2, 2, 470, 471, 7, 110, 2, 2, 471, 96, 3, 2, 2, 2, 472, 473, 7, 121, 2, 2, 473, 474, 7, 99, 2, 2, 474, 475, 7, 107, 2, 2, 475, 476, 7, 118, 2, 2, 476, 98, 3, 2, 2, 2, 477, 478, 7, 103, 2, 2, 478, 479, 7, 111, 2, 2, 479, 480, 7, 107, 2, 2, 480, 481, 7, 118, 2, 2, 481, 100, 3, 2, 2, 2, 482, 483, 7, 101, 2, 2, 483, 484, 7, 99, 2, 2, 484, 485, 7, 110, 2, 2, 485, 486, 7, 110, 2, 2, 486, 102, 3, 2, 2, 2, 487, 488, 7, 119, 2, 2, 488, 489, 7, 112, 2, 2, 489, 490, 7, 118, 2, 2, 490, 491, 7, 107, 2, 2, 491, 492, 7, 110, 2, 2, 492, 104, 3, 2, 2, 2, 493, 494, 7, 102, 2, 2, 494, 495, 7, 103, 2, 2, 495, 496, 7, 104, 2, 2, 496, 106, 3, 2, 2, 2, 497, 498, 7, 47, 2, 2, 498, 499, 7, 64, 2, 2, 499, 108, 3, 2, 2, 2, 500, 501, 7, 103, 2, 2, 501, 502, 7, 122, 2, 2, 502, 503, 7, 114, 2, 2, 503, 504, 7, 116, 2, 2, 504, 505, 7, 103, 2, 2, 505, 506, 7, 117, 2, 2, 506, 507, 7, 117, 2, 2, 507, 508, 7, 107, 2, 2, 508, 509, 7, 113, 2, 2, 509, 510, 7, 112, 2, 2, 510, 110, 3, 2, 2, 2, 511, 512, 7, 119, 2, 2, 512, 513, 7, 112, 2, 2, 513, 514, 7, 102, 2, 2, 514, 515, 7, 103, 2, 2, 515, 516, 7, 104, 2, 2, 516, 517, 7, 107, 2, 2, 517, 518, 7, 112, 2, 2, 518, 519, 7, 103, 2, 2, 519, 520, 7, 102, 2, 2, 520, 112, 3, 2, 2, 2, 521, 522, 7, 103, 2, 2, 522, 523, 7, 122, 2, 2, 523, 524, 7, 118, 2, 2, 524, 525, 7, 103, 2, 2, 525, 526, 7, 116, 2, 2, 526, 527, 7, 112, 2, 2, 527, 528, 7, 99, 2, 2, 528, 529, 7, 110, 2, 2, 529, 114, 3, 2, 2, 2, 530, 531, 7, 113, 2, 2, 531, 532, 7, 112, 2, 2, 532, 533, 7, 110, 2, 2, 533, 534, 7, 123, 2, 2, 534, 116, 3, 2, 2, 2, 535, 536, 7, 101, 2, 2, 536, 537, 7, 113, 2, 2, 537, 538, 7, 120, 2, 2, 538, 539, 7, 103, 2, 2, 539, 540, 7, 116, 2, 2, 540, 118, 3, 2, 2, 2, 541, 542, 7, 116, 2, 2, 542, 543, 7, 103, 2, 2, 543, 544, 7, 101, 2, 2, 544, 545, 7, 113, 2, 2, 545, 546, 7, 116, 2, 2, 546, 547, 7, 102, 2, 2, 547, 120, 3, 2, 2, 2, 548, 549, 7, 116, 2, 2, 549, 550, 7, 99, 2, 2, 550, 551, 7, 112, 2, 2, 551, 552, 7, 105, 2, 2, 552, 553, 7, 103, 2, 2, 553, 122, 3, 2, 2, 2, 554, 555, 7, 65, 2, 2, 555, 124, 3, 2, 2, 2, 556, 557, 7, 63, 2, 2, 557, 558, 7, 64, 2, 2, 558, 126, 3, 2, 2, 2, 559, 560, 7, 113, 2, 2, 560, 561, 7, 116, 2, 2, 561, 128, 3, 2, 2, 2, 562, 563, 7, 99, 2, 2, 563, 564, 7, 112, 2, 2, 564, 565, 7, 102, 2, 2, 565, 130, 3, 2, 2, 2, 566, 567, 7, 112, 2, 2, 567, 568, 7, 113, 2, 2, 568, 569, 7, 118, 2, 2, 569, 132, 3, 2, 2, 2, 570, 571, 7, 35, 2, 2, 571, 572, 7, 63, 2, 2, 572, 134, 3, 2, 2, 2, 573, 574, 7, 62, 2, 2, 574, 136, 3, 2, 2, 2, 575, 576, 7, 62, 2, 2, 576, 577, 7, 63, 2, 2, 577, 138, 3, 2, 2, 2, 578, 579, 7, 64, 2, 2, 579, 140, 3, 2, 2, 2, 580, 581, 7, 64, 2, 2, 581, 582, 7, 63, 2, 2, 582, 142, 3, 2, 2, 2, 583, 584, 7, 107, 2, 2, 584, 585, 7, 112, 2, 2, 585, 144, 3, 2, 2, 2, 586, 587, 7, 45, 2, 2, 587, 146, 3, 2, 2, 2, 588, 589, 7, 47, 2, 2, 589, 148, 3, 2, 2, 2, 590, 591, 7, 44, 2, 2, 591, 150, 3, 2, 2, 2, 592, 593, 7, 49, 2, 2, 593, 152, 3, 2, 2, 2, 594, 595, 7, 39, 2, 2, 595, 154, 3, 2, 2, 2, 596, 597, 7, 107, 2, 2, 597, 598, 7, 118, 2, 2, 598, 156, 3, 2, 2, 2, 599, 600, 7, 48, 2, 2, 600, 601, 7, 48, 2, 2, 601, 158, 3, 2, 2, 2, 602, 603, 6, 80, 2, 2, 603, 615, 5, 171, 86, 2, 604, 606, 7, 15, 2, 2, 605, 604, 3, 2, 2, 2, 605, 606, 3, 2, 2, 2, 606, 607, 3, 2, 2, 2, 607, 610, 7, 12, 2, 2, 608, 610, 4, 14, 15, 2, 609, 605, 3, 2, 2, 2, 609, 608, 3, 2, 2, 2, 610, 612, 3, 2, 2, 2, 611, 613, 5, 171, 86, 2, 612, 611, 3, 2, 2, 2, 612, 613, 3, 2, 2, 2, 613, 615, 3, 2, 2, 2, 614, 602, 3, 2, 2, 2, 614, 609, 3, 2, 2, 2, 615, 616, 3, 2, 2, 2, 616, 617, 8, 80, 2, 2, 617, 160, 3, 2, 2, 2, 618, 619, 7, 93, 2, 2, 619, 620, 8, 81, 3, 2, 620, 162, 3, 2, 2, 2, 621, 622, 7, 95, 2, 2, 622, 623, 8, 82, 4, 2, 623, 164, 3, 2, 2, 2, 624, 625, 7, 42, 2, 2, 625, 626, 8, 83, 5, 2, 626, 166, 3, 2, 2, 2, 627, 628, 7, 43, 2, 2, 628, 629, 8, 84, 6, 2, 629, 168, 3, 2, 2, 2, 630, 633, 5, 171, 86, 2, 631, 633, 5, 173, 87, 2, 632, 630, 3, 2, 2, 2, 632, 631, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 635, 8, 85, 7, 2, 635, 170, 3, 2, 2, 2, 636, 638, 9, 2, 2, 2, 637, 636, 3, 2, 2, 2, 638, 639, 3, 2, 2, 2, 639, 637, 3, 2, 2, 2, 639, 640, 3, 2, 2, 2, 640, 172, 3, 2, 2, 2, 641, 643, 7, 94, 2, 2, 642, 644, 5, 171, 86, 2, 643, 642, 3, 2, 2, 2, 643, 644, 3, 2, 2, 2, 644, 646, 3, 2, 2, 2, 645, 647, 7, 15, 2, 2, 646, 645, 3, 2, 2, 2, 646, 647, 3, 2, 2, 2, 647, 648, 3, 2, 2, 2, 648, 649, 7, 12, 2, 2, 649, 174, 3, 2, 2, 2, 650, 652, 7, 15, 2, 2, 651, 650, 3, 2, 2, 2, 651, 652, 3, 2, 2, 2, 652, 653, 3, 2, 2, 2, 653, 654, 7, 12, 2, 2, 654, 176, 3, 2, 2, 2, 655, 656, 7, 49, 2, 2, 656, 657, 7, 44, 2, 2, 657, 661, 3, 2, 2, 2, 658, 660, 11, 2, 2, 2, 659, 658, 3, 2, 2, 2, 660, 663, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 661, 659, 3, 2, 2, 2, 662, 664, 3, 2, 2, 2, 663, 661, 3, 2, 2, 2, 664, 665, 7, 44, 2, 2, 665, 666, 7, 49, 2, 2, 666, 667, 3, 2, 2, 2, 667, 668, 8, 89, 7, 2, 668, 178, 3, 2, 2, 2, 669, 673, 7, 37, 2, 2, 670, 672, 10, 3, 2, 2, 671, 670, 3, 2, 2, 2, 672, 675, 3, 2, 2, 2, 673, 671, 3, 2, 2, 2, 673, 674, 3, 2, 2, 2, 674, 676, 3, 2, 2, 2, 675, 673, 3, 2, 2, 2, 676, 677, 8, 90, 7, 2, 677, 180, 3, 2, 2, 2, 678, 681, 5, 183, 92, 2, 679, 681, 5, 189, 95, 2, 680, 678, 3, 2, 2, 2, 680, 679, 3, 2, 2, 2, 681, 182, 3, 2, 2, 2, 682, 686, 7, 36, 2, 2, 683, 685, 5, 185, 93, 2, 684, 683, 3, 2, 2, 2, 685, 688, 3, 2, 2, 2, 686, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 689, 3, 2, 2, 2, 688, 686, 3, 2, 2, 2, 689, 699, 7, 36, 2, 2, 690, 694, 7, 41, 2, 2, 691, 693, 5, 185, 93, 2, 692, 691, 3, 2, 2, 2, 693, 696, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 694, 695, 3, 2, 2, 2, 695, 697, 3, 2, 2, 2, 696, 694, 3, 2, 2, 2, 697, 699, 7, 41, 2, 2, 698, 682, 3, 2, 2, 2, 698, 690, 3, 2, 2, 2, 699, 184, 3, 2, 2, 2, 700, 703, 5, 187, 94, 2, 701, 703, 5, 195, 98, 2, 702, 700, 3, 2, 2, 2, 702, 701, 3, 2, 2, 2, 703, 186, 3, 2, 2, 2, 704, 705, 10, 4, 2, 2, 705, 188, 3, 2, 2, 2, 706, 707, 7, 36, 2, 2, 707, 708, 7, 36, 2, 2, 708, 709, 7, 36, 2, 2, 709, 713, 3, 2, 2, 2, 710, 712, 5, 191, 96, 2, 711, 710, 3, 2, 2, 2, 712, 715, 3, 2, 2, 2, 713, 711, 3, 2, 2, 2, 713, 714, 3, 2, 2, 2, 714, 716, 3, 2, 2, 2, 715, 713, 3, 2, 2, 2, 716, 717, 7, 36, 2, 2, 717, 718, 7, 36, 2, 2, 718, 733, 7, 36, 2, 2, 719, 720, 7, 41, 2, 2, 720, 721, 7, 41, 2, 2, 721, 722, 7, 41, 2, 2, 722, 726, 3, 2, 2, 2, 723, 725, 5, 191, 96, 2, 724, 723, 3, 2, 2, 2, 725, 728, 3, 2, 2, 2, 726, 724, 3, 2, 2, 2, 726, 727, 3, 2, 2, 2, 727, 729, 3, 2, 2, 2, 728, 726, 3, 2, 2, 2, 729, 730, 7, 41, 2, 2, 730, 731, 7, 41, 2, 2, 731, 733, 7, 41, 2, 2, 732, 706, 3, 2, 2, 2, 732, 719, 3, 2, 2, 2, 733, 190, 3, 2, 2, 2, 734, 737, 5, 193, 97, 2, 735, 737, 5, 195, 98, 2, 736, 734, 3, 2, 2, 2, 736, 735, 3, 2, 2, 2, 737, 192, 3, 2, 2, 2, 738, 739, 10, 5, 2, 2, 739, 194, 3, 2, 2, 2, 740, 741, 7, 94, 2, 2, 741, 745, 11, 2, 2, 2, 742, 743, 7, 94, 2, 2, 743, 745, 5, 175, 88, 2, 744, 740, 3, 2, 2, 2, 744, 742, 3, 2, 2, 2, 745, 196, 3, 2, 2, 2, 746, 748, 9, 6, 2, 2, 747, 746, 3, 2, 2, 2, 747, 748, 3, 2, 2, 2, 748, 752, 3, 2, 2, 2, 749, 751, 5, 211, 106, 2, 750, 749, 3, 2, 2, 2, 751, 754, 3, 2, 2, 2, 752, 750, 3, 2, 2, 2, 752, 753, 3, 2, 2, 2, 753, 755, 3, 2, 2, 2, 754, 752, 3, 2, 2, 2, 755, 757, 7, 48, 2, 2, 756, 758, 5, 211, 106, 2, 757, 756, 3, 2, 2, 2, 758, 759, 3, 2, 2, 2, 759, 757, 3, 2, 2, 2, 759, 760, 3, 2, 2, 2, 760, 770, 3, 2, 2, 2, 761, 763, 9, 7, 2, 2, 762, 764, 9, 6, 2, 2, 763, 762, 3, 2, 2, 2, 763, 764, 3, 2, 2, 2, 764, 766, 3, 2, 2, 2, 765, 767, 5, 211, 106, 2, 766, 765, 3, 2, 2, 2, 767, 768, 3, 2, 2, 2, 768, 766, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 771, 3, 2, 2, 2, 770, 761, 3, 2, 2, 2, 770, 771, 3, 2, 2, 2, 771, 198, 3, 2, 2, 2, 772, 774, 5, 211, 106, 2, 773, 772, 3, 2, 2, 2, 774, 775, 3, 2, 2, 2, 775, 773, 3, 2, 2, 2, 775, 776, 3, 2, 2, 2, 776, 200, 3, 2, 2, 2, 777, 778, 7, 50, 2, 2, 778, 779, 7, 122, 2, 2, 779, 781, 3, 2, 2, 2, 780, 782, 5, 213, 107, 2, 781, 780, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 781, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 202, 3, 2, 2, 2, 785, 787, 7, 47, 2, 2, 786, 788, 5, 211, 106, 2, 787, 786, 3, 2, 2, 2, 788, 789, 3, 2, 2, 2, 789, 787, 3, 2, 2, 2, 789, 790, 3, 2, 2, 2, 790, 204, 3, 2, 2, 2, 791, 792, 7, 118, 2, 2, 792, 793, 7, 116, 2, 2, 793, 794, 7, 119, 2, 2, 794, 801, 7, 103, 2, 2, 795, 796, 7, 104, 2, 2, 796, 797, 7, 99, 2, 2, 797, 798, 7, 110, 2, 2, 798, 799, 7, 117, 2, 2, 799, 801, 7, 103, 2, 2, 800, 791, 3, 2, 2, 2, 800, 795, 3, 2, 2, 2, 801, 206, 3, 2, 2, 2, 802, 806, 5, 215, 108, 2, 803, 805, 5, 217, 109, 2, 804, 803, 3, 2, 2, 2, 805, 808, 3, 2, 2, 2, 806, 804, 3, 2, 2, 2, 806, 807, 3, 2, 2, 2, 807, 818, 3, 2, 2, 2, 808, 806, 3, 2, 2, 2, 809, 811, 7, 126, 2, 2, 810, 812, 5, 209, 105, 2, 811, 810, 3, 2, 2, 2, 812, 813, 3, 2, 2, 2, 813, 811, 3, 2, 2, 2, 813, 814, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 816, 7, 126, 2, 2, 816, 818, 3, 2, 2, 2, 817, 802, 3, 2, 2, 2, 817, 809, 3, 2, 2, 2, 818, 208, 3, 2, 2, 2, 819, 820, 10, 8, 2, 2, 820, 210, 3, 2, 2, 2, 821, 822, 9, 9, 2, 2, 822, 212, 3, 2, 2, 2, 823, 824, 9, 10, 2, 2, 824, 214, 3, 2, 2, 2, 825, 827, 9, 11, 2, 2, 826, 825, 3, 2, 2, 2, 827, 216, 3, 2, 2, 2, 828, 831, 5, 215, 108, 2, 829, 831, 9, 12, 2, 2, 830, 828, 3, 2, 2, 2, 830, 829, 3, 2, 2, 2, 831, 218, 3, 2, 2, 2, 39, 2, 605, 609, 612, 614, 632, 639, 643, 646, 651, 661, 673, 680, 686, 694, 698, 702, 713, 726, 732, 736, 744, 747, 752, 759, 763, 768, 770, 775, 783, 789, 800, 806, 813, 817, 826, 830, 8, 3, 80, 2, 3, 81, 3, 3, 82, 4, 3, 83, 5, 3, 84, 6, 8, 2, 2]
\ No newline at end of file
diff --git a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.java b/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.java
deleted file mode 100644
index d4541e0..0000000
--- a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.java
+++ /dev/null
@@ -1,723 +0,0 @@
-// Generated from /home/kai/openscenario2.0/openscenario2.0_-antlr/osc2-carla-v1-2/osc2_parser/OpenSCENARIO2.g4 by ANTLR 4.9.2
-
-from antlr4.Token import CommonToken
-import re
-import importlib
-# Allow languages to extend the lexer and parser, by loading the parser dynamically
-module_path = __name__[:-5]
-language_name = __name__.split('.')[-1]
-language_name = language_name[:-5] # Remove Lexer from name
-LanguageParser = getattr(importlib.import_module('{}Parser'.format(module_path)), '{}Parser'.format(language_name))
-
-import org.antlr.v4.runtime.Lexer;
-import org.antlr.v4.runtime.CharStream;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.TokenStream;
-import org.antlr.v4.runtime.*;
-import org.antlr.v4.runtime.atn.*;
-import org.antlr.v4.runtime.dfa.DFA;
-import org.antlr.v4.runtime.misc.*;
-
-@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
-public class OpenSCENARIO2Lexer extends Lexer {
- static { RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION); }
-
- protected static final DFA[] _decisionToDFA;
- protected static final PredictionContextCache _sharedContextCache =
- new PredictionContextCache();
- public static final int
- T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
- T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
- T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
- T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
- T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
- T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45,
- T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52,
- T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59,
- T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66,
- T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73,
- T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, NEWLINE=79, OPEN_BRACK=80,
- CLOSE_BRACK=81, OPEN_PAREN=82, CLOSE_PAREN=83, SKIP_=84, BLOCK_COMMENT=85,
- LINE_COMMENT=86, StringLiteral=87, FloatLiteral=88, UintLiteral=89, HexUintLiteral=90,
- IntLiteral=91, BoolLiteral=92, Identifier=93;
- public static String[] channelNames = {
- "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
- };
-
- public static String[] modeNames = {
- "DEFAULT_MODE"
- };
-
- private static String[] makeRuleNames() {
- return new String[] {
- "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
- "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
- "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
- "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32",
- "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40",
- "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48",
- "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56",
- "T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64",
- "T__65", "T__66", "T__67", "T__68", "T__69", "T__70", "T__71", "T__72",
- "T__73", "T__74", "T__75", "T__76", "T__77", "NEWLINE", "OPEN_BRACK",
- "CLOSE_BRACK", "OPEN_PAREN", "CLOSE_PAREN", "SKIP_", "SPACES", "LINE_JOINING",
- "RN", "BLOCK_COMMENT", "LINE_COMMENT", "StringLiteral", "Shortstring",
- "ShortstringElem", "ShortstringChar", "Longstring", "LongstringElem",
- "LongstringChar", "StringEscapeSeq", "FloatLiteral", "UintLiteral", "HexUintLiteral",
- "IntLiteral", "BoolLiteral", "Identifier", "NonVerticalLineChar", "Digit",
- "HexDigit", "IdStartChar", "IdChar"
- };
- }
- public static final String[] ruleNames = makeRuleNames();
-
- private static String[] makeLiteralNames() {
- return new String[] {
- null, "'import'", "'.'", "'type'", "'is'", "'SI'", "'unit'", "'of'",
- "','", "':'", "'enum'", "'='", "'!'", "'struct'", "'inherits'", "'=='",
- "'actor'", "'scenario'", "'action'", "'modifier'", "'extend'", "'global'",
- "'list'", "'int'", "'uint'", "'float'", "'bool'", "'string'", "'event'",
- "'if'", "'@'", "'as'", "'rise'", "'fall'", "'elapsed'", "'every'", "'var'",
- "'sample'", "'with'", "'keep'", "'default'", "'hard'", "'remove_default'",
- "'on'", "'do'", "'serial'", "'one_of'", "'parallel'", "'wait'", "'emit'",
- "'call'", "'until'", "'def'", "'->'", "'expression'", "'undefined'",
- "'external'", "'only'", "'cover'", "'record'", "'range'", "'?'", "'=>'",
- "'or'", "'and'", "'not'", "'!='", "'<'", "'<='", "'>'", "'>='", "'in'",
- "'+'", "'-'", "'*'", "'/'", "'%'", "'it'", "'..'", null, "'['", "']'",
- "'('", "')'"
- };
- }
- private static final String[] _LITERAL_NAMES = makeLiteralNames();
- private static String[] makeSymbolicNames() {
- return new String[] {
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, "NEWLINE", "OPEN_BRACK", "CLOSE_BRACK",
- "OPEN_PAREN", "CLOSE_PAREN", "SKIP_", "BLOCK_COMMENT", "LINE_COMMENT",
- "StringLiteral", "FloatLiteral", "UintLiteral", "HexUintLiteral", "IntLiteral",
- "BoolLiteral", "Identifier"
- };
- }
- private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
- public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
-
- /**
- * @deprecated Use {@link #VOCABULARY} instead.
- */
- @Deprecated
- public static final String[] tokenNames;
- static {
- tokenNames = new String[_SYMBOLIC_NAMES.length];
- for (int i = 0; i < tokenNames.length; i++) {
- tokenNames[i] = VOCABULARY.getLiteralName(i);
- if (tokenNames[i] == null) {
- tokenNames[i] = VOCABULARY.getSymbolicName(i);
- }
-
- if (tokenNames[i] == null) {
- tokenNames[i] = "";
- }
- }
- }
-
- @Override
- @Deprecated
- public String[] getTokenNames() {
- return tokenNames;
- }
-
- @Override
-
- public Vocabulary getVocabulary() {
- return VOCABULARY;
- }
-
-
-
- @property
- def tokens(self):
- try:
- return self._tokens
- except AttributeError:
- self._tokens = []
- return self._tokens
-
- @property
- def indents(self):
- try:
- return self._indents
- except AttributeError:
- self._indents = []
- return self._indents
-
- @property
- def opened(self):
- try:
- return self._opened
- except AttributeError:
- self._opened = 0
- return self._opened
-
- @opened.setter
- def opened(self, value):
- self._opened = value
-
- @property
- def lastToken(self):
- try:
- return self._lastToken
- except AttributeError:
- self._lastToken = None
- return self._lastToken
-
- @lastToken.setter
- def lastToken(self, value):
- self._lastToken = value
-
- def reset(self):
- super().reset()
- self.tokens = []
- self.indents = []
- self.opened = 0
- self.lastToken = None
-
- def emitToken(self, t):
- super().emitToken(t)
- self.tokens.append(t)
-
- def nextToken(self):
- if self._input.LA(1) == Token.EOF and self.indents:
- for i in range(len(self.tokens)-1,-1,-1):
- if self.tokens[i].type == Token.EOF:
- self.tokens.pop(i)
- self.emitToken(self.commonToken(LanguageParser.NEWLINE, '\n'))
- while self.indents:
- self.emitToken(self.createDedent())
- self.indents.pop()
- self.emitToken(self.commonToken(LanguageParser.EOF, ""))
- next = super().nextToken()
- if next.channel == Token.DEFAULT_CHANNEL:
- self.lastToken = next
- return next if not self.tokens else self.tokens.pop(0)
-
- def createDedent(self):
- dedent = self.commonToken(LanguageParser.DEDENT, "")
- dedent.line = self.lastToken.line
- return dedent
-
- def commonToken(self, type, text, indent=0):
- stop = self.getCharIndex()-1-indent
- start = (stop - len(text) + 1) if text else stop
- return CommonToken(self._tokenFactorySourcePair, type, super().DEFAULT_TOKEN_CHANNEL, start, stop)
-
- @staticmethod
- def getIndentationCount(spaces):
- count = 0
- for ch in spaces:
- if ch == '\t':
- count += 8 - (count % 8)
- else:
- count += 1
- return count
-
- def atStartOfInput(self):
- return Lexer.column.fget(self) == 0 and Lexer.line.fget(self) == 1
-
-
-
- public OpenSCENARIO2Lexer(CharStream input) {
- super(input);
- _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
- }
-
- @Override
- public String getGrammarFileName() { return "OpenSCENARIO2.g4"; }
-
- @Override
- public String[] getRuleNames() { return ruleNames; }
-
- @Override
- public String getSerializedATN() { return _serializedATN; }
-
- @Override
- public String[] getChannelNames() { return channelNames; }
-
- @Override
- public String[] getModeNames() { return modeNames; }
-
- @Override
- public ATN getATN() { return _ATN; }
-
- @Override
- public void action(RuleContext _localctx, int ruleIndex, int actionIndex) {
- switch (ruleIndex) {
- case 78:
- NEWLINE_action((RuleContext)_localctx, actionIndex);
- break;
- case 79:
- OPEN_BRACK_action((RuleContext)_localctx, actionIndex);
- break;
- case 80:
- CLOSE_BRACK_action((RuleContext)_localctx, actionIndex);
- break;
- case 81:
- OPEN_PAREN_action((RuleContext)_localctx, actionIndex);
- break;
- case 82:
- CLOSE_PAREN_action((RuleContext)_localctx, actionIndex);
- break;
- }
- }
- private void NEWLINE_action(RuleContext _localctx, int actionIndex) {
- switch (actionIndex) {
- case 0:
-
- tempt = Lexer.text.fget(self)
- newLine = re.sub("[^\r\n\f]+", "", tempt)
- spaces = re.sub("[\r\n\f]+", "", tempt)
- la_char = ""
- try:
- la = self._input.LA(1)
- la_char = chr(la) # Python does not compare char to ints directly
- except ValueError: # End of file
- pass
- # Strip newlines inside open clauses except if we are near EOF. We keep NEWLINEs near EOF to
- # satisfy the final newline needed by the single_put rule used by the REPL.
- try:
- nextnext_la = self._input.LA(2)
- nextnext_la_char = chr(nextnext_la)
- except ValueError:
- nextnext_eof = True
- else:
- nextnext_eof = False
- if self.opened > 0 or nextnext_eof is False and (la_char == '\r' or la_char == '\n' or la_char == '\f' or la_char == '#'):
- self.skip()
- else:
- indent = self.getIndentationCount(spaces)
- previous = self.indents[-1] if self.indents else 0
- self.emitToken(self.commonToken(self.NEWLINE, newLine, indent=indent)) # NEWLINE is actually the '\n' char
- if indent == previous:
- self.skip()
- elif indent > previous:
- self.indents.append(indent)
- self.emitToken(self.commonToken(LanguageParser.INDENT, spaces))
- else:
- while self.indents and self.indents[-1] > indent:
- self.emitToken(self.createDedent())
- self.indents.pop()
-
- break;
- }
- }
- private void OPEN_BRACK_action(RuleContext _localctx, int actionIndex) {
- switch (actionIndex) {
- case 1:
- self.opened += 1
- break;
- }
- }
- private void CLOSE_BRACK_action(RuleContext _localctx, int actionIndex) {
- switch (actionIndex) {
- case 2:
- self.opened -= 1
- break;
- }
- }
- private void OPEN_PAREN_action(RuleContext _localctx, int actionIndex) {
- switch (actionIndex) {
- case 3:
- self.opened += 1
- break;
- }
- }
- private void CLOSE_PAREN_action(RuleContext _localctx, int actionIndex) {
- switch (actionIndex) {
- case 4:
- self.opened -= 1
- break;
- }
- }
- @Override
- public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
- switch (ruleIndex) {
- case 78:
- return NEWLINE_sempred((RuleContext)_localctx, predIndex);
- }
- return true;
- }
- private boolean NEWLINE_sempred(RuleContext _localctx, int predIndex) {
- switch (predIndex) {
- case 0:
- return self.atStartOfInput();
- }
- return true;
- }
-
- public static final String _serializedATN =
- "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2_\u0340\b\1\4\2\t"+
- "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
- "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
- "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
- "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
- "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
- ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
- "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+
- "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
- "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
- "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
- "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+
- "k\4l\tl\4m\tm\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4"+
- "\3\5\3\5\3\5\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\n\3"+
- "\n\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3"+
- "\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3"+
- "\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3"+
- "\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3"+
- "\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3"+
- "\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\31\3\31\3"+
- "\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3"+
- "\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3"+
- "\36\3\36\3\37\3\37\3 \3 \3 \3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3#\3#\3"+
- "#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3"+
- "\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*"+
- "\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3-\3-\3-\3."+
- "\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60"+
- "\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\63"+
- "\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65"+
- "\3\66\3\66\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67"+
- "\38\38\38\38\38\38\38\38\38\38\39\39\39\39\39\39\39\39\39\3:\3:\3:\3:"+
- "\3:\3;\3;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3<\3<\3=\3=\3=\3=\3=\3=\3>\3>\3?"+
- "\3?\3?\3@\3@\3@\3A\3A\3A\3A\3B\3B\3B\3B\3C\3C\3C\3D\3D\3E\3E\3E\3F\3F"+
- "\3G\3G\3G\3H\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3M\3M\3N\3N\3N\3O\3O\3O\3P"+
- "\3P\3P\5P\u025e\nP\3P\3P\5P\u0262\nP\3P\5P\u0265\nP\5P\u0267\nP\3P\3P"+
- "\3Q\3Q\3Q\3R\3R\3R\3S\3S\3S\3T\3T\3T\3U\3U\5U\u0279\nU\3U\3U\3V\6V\u027e"+
- "\nV\rV\16V\u027f\3W\3W\5W\u0284\nW\3W\5W\u0287\nW\3W\3W\3X\5X\u028c\n"+
- "X\3X\3X\3Y\3Y\3Y\3Y\7Y\u0294\nY\fY\16Y\u0297\13Y\3Y\3Y\3Y\3Y\3Y\3Z\3Z"+
- "\7Z\u02a0\nZ\fZ\16Z\u02a3\13Z\3Z\3Z\3[\3[\5[\u02a9\n[\3\\\3\\\7\\\u02ad"+
- "\n\\\f\\\16\\\u02b0\13\\\3\\\3\\\3\\\7\\\u02b5\n\\\f\\\16\\\u02b8\13\\"+
- "\3\\\5\\\u02bb\n\\\3]\3]\5]\u02bf\n]\3^\3^\3_\3_\3_\3_\3_\7_\u02c8\n_"+
- "\f_\16_\u02cb\13_\3_\3_\3_\3_\3_\3_\3_\3_\7_\u02d5\n_\f_\16_\u02d8\13"+
- "_\3_\3_\3_\5_\u02dd\n_\3`\3`\5`\u02e1\n`\3a\3a\3b\3b\3b\3b\5b\u02e9\n"+
- "b\3c\5c\u02ec\nc\3c\7c\u02ef\nc\fc\16c\u02f2\13c\3c\3c\6c\u02f6\nc\rc"+
- "\16c\u02f7\3c\3c\5c\u02fc\nc\3c\6c\u02ff\nc\rc\16c\u0300\5c\u0303\nc\3"+
- "d\6d\u0306\nd\rd\16d\u0307\3e\3e\3e\3e\6e\u030e\ne\re\16e\u030f\3f\3f"+
- "\6f\u0314\nf\rf\16f\u0315\3g\3g\3g\3g\3g\3g\3g\3g\3g\5g\u0321\ng\3h\3"+
- "h\7h\u0325\nh\fh\16h\u0328\13h\3h\3h\6h\u032c\nh\rh\16h\u032d\3h\3h\5"+
- "h\u0332\nh\3i\3i\3j\3j\3k\3k\3l\5l\u033b\nl\3m\3m\5m\u033f\nm\3\u0295"+
- "\2n\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35"+
- "\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36"+
- ";\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67"+
- "m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008d"+
- "H\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1"+
- "R\u00a3S\u00a5T\u00a7U\u00a9V\u00ab\2\u00ad\2\u00af\2\u00b1W\u00b3X\u00b5"+
- "Y\u00b7\2\u00b9\2\u00bb\2\u00bd\2\u00bf\2\u00c1\2\u00c3\2\u00c5Z\u00c7"+
- "[\u00c9\\\u00cb]\u00cd^\u00cf_\u00d1\2\u00d3\2\u00d5\2\u00d7\2\u00d9\2"+
- "\3\2\r\4\2\13\13\"\"\4\2\f\f\16\17\7\2\f\f\17\17$$))^^\3\2^^\4\2--//\4"+
- "\2GGgg\3\2~~\3\2\62;\5\2\62;CHch\u0129\2C\\aac|\u00ac\u00ac\u00b7\u00b7"+
- "\u00bc\u00bc\u00c2\u00d8\u00da\u00f8\u00fa\u0243\u0252\u02c3\u02c8\u02d3"+
- "\u02e2\u02e6\u02f0\u02f0\u037c\u037c\u0388\u0388\u038a\u038c\u038e\u038e"+
- "\u0390\u03a3\u03a5\u03d0\u03d2\u03f7\u03f9\u0483\u048c\u04d0\u04d2\u04fb"+
- "\u0502\u0511\u0533\u0558\u055b\u055b\u0563\u0589\u05d2\u05ec\u05f2\u05f4"+
- "\u0623\u063c\u0642\u064c\u0670\u0671\u0673\u06d5\u06d7\u06d7\u06e7\u06e8"+
- "\u06f0\u06f1\u06fc\u06fe\u0701\u0701\u0712\u0712\u0714\u0731\u074f\u076f"+
- "\u0782\u07a7\u07b3\u07b3\u0906\u093b\u093f\u093f\u0952\u0952\u095a\u0963"+
- "\u097f\u097f\u0987\u098e\u0991\u0992\u0995\u09aa\u09ac\u09b2\u09b4\u09b4"+
- "\u09b8\u09bb\u09bf\u09bf\u09d0\u09d0\u09de\u09df\u09e1\u09e3\u09f2\u09f3"+
- "\u0a07\u0a0c\u0a11\u0a12\u0a15\u0a2a\u0a2c\u0a32\u0a34\u0a35\u0a37\u0a38"+
- "\u0a3a\u0a3b\u0a5b\u0a5e\u0a60\u0a60\u0a74\u0a76\u0a87\u0a8f\u0a91\u0a93"+
- "\u0a95\u0aaa\u0aac\u0ab2\u0ab4\u0ab5\u0ab7\u0abb\u0abf\u0abf\u0ad2\u0ad2"+
- "\u0ae2\u0ae3\u0b07\u0b0e\u0b11\u0b12\u0b15\u0b2a\u0b2c\u0b32\u0b34\u0b35"+
- "\u0b37\u0b3b\u0b3f\u0b3f\u0b5e\u0b5f\u0b61\u0b63\u0b73\u0b73\u0b85\u0b85"+
- "\u0b87\u0b8c\u0b90\u0b92\u0b94\u0b97\u0b9b\u0b9c\u0b9e\u0b9e\u0ba0\u0ba1"+
- "\u0ba5\u0ba6\u0baa\u0bac\u0bb0\u0bbb\u0c07\u0c0e\u0c10\u0c12\u0c14\u0c2a"+
- "\u0c2c\u0c35\u0c37\u0c3b\u0c62\u0c63\u0c87\u0c8e\u0c90\u0c92\u0c94\u0caa"+
- "\u0cac\u0cb5\u0cb7\u0cbb\u0cbf\u0cbf\u0ce0\u0ce0\u0ce2\u0ce3\u0d07\u0d0e"+
- "\u0d10\u0d12\u0d14\u0d2a\u0d2c\u0d3b\u0d62\u0d63\u0d87\u0d98\u0d9c\u0db3"+
- "\u0db5\u0dbd\u0dbf\u0dbf\u0dc2\u0dc8\u0e03\u0e32\u0e34\u0e35\u0e42\u0e48"+
- "\u0e83\u0e84\u0e86\u0e86\u0e89\u0e8a\u0e8c\u0e8c\u0e8f\u0e8f\u0e96\u0e99"+
- "\u0e9b\u0ea1\u0ea3\u0ea5\u0ea7\u0ea7\u0ea9\u0ea9\u0eac\u0ead\u0eaf\u0eb2"+
- "\u0eb4\u0eb5\u0ebf\u0ebf\u0ec2\u0ec6\u0ec8\u0ec8\u0ede\u0edf\u0f02\u0f02"+
- "\u0f42\u0f49\u0f4b\u0f6c\u0f8a\u0f8d\u1002\u1023\u1025\u1029\u102b\u102c"+
- "\u1052\u1057\u10a2\u10c7\u10d2\u10fc\u10fe\u10fe\u1102\u115b\u1161\u11a4"+
- "\u11aa\u11fb\u1202\u124a\u124c\u124f\u1252\u1258\u125a\u125a\u125c\u125f"+
- "\u1262\u128a\u128c\u128f\u1292\u12b2\u12b4\u12b7\u12ba\u12c0\u12c2\u12c2"+
- "\u12c4\u12c7\u12ca\u12d8\u12da\u1312\u1314\u1317\u131a\u135c\u1382\u1391"+
- "\u13a2\u13f6\u1403\u166e\u1671\u1678\u1683\u169c\u16a2\u16ec\u16f0\u16f2"+
- "\u1702\u170e\u1710\u1713\u1722\u1733\u1742\u1753\u1762\u176e\u1770\u1772"+
- "\u1782\u17b5\u17d9\u17d9\u17de\u17de\u1822\u1879\u1882\u18aa\u1902\u191e"+
- "\u1952\u196f\u1972\u1976\u1982\u19ab\u19c3\u19c9\u1a02\u1a18\u1d02\u1dc1"+
- "\u1e02\u1e9d\u1ea2\u1efb\u1f02\u1f17\u1f1a\u1f1f\u1f22\u1f47\u1f4a\u1f4f"+
- "\u1f52\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f5f\u1f61\u1f7f\u1f82\u1fb6"+
- "\u1fb8\u1fbe\u1fc0\u1fc0\u1fc4\u1fc6\u1fc8\u1fce\u1fd2\u1fd5\u1fd8\u1fdd"+
- "\u1fe2\u1fee\u1ff4\u1ff6\u1ff8\u1ffe\u2073\u2073\u2081\u2081\u2092\u2096"+
- "\u2104\u2104\u2109\u2109\u210c\u2115\u2117\u2117\u211a\u211f\u2126\u2126"+
- "\u2128\u2128\u212a\u212a\u212c\u2133\u2135\u213b\u213e\u2141\u2147\u214b"+
- "\u2162\u2185\u2c02\u2c30\u2c32\u2c60\u2c82\u2ce6\u2d02\u2d27\u2d32\u2d67"+
- "\u2d71\u2d71\u2d82\u2d98\u2da2\u2da8\u2daa\u2db0\u2db2\u2db8\u2dba\u2dc0"+
- "\u2dc2\u2dc8\u2dca\u2dd0\u2dd2\u2dd8\u2dda\u2de0\u3007\u3009\u3023\u302b"+
- "\u3033\u3037\u303a\u303e\u3043\u3098\u309d\u30a1\u30a3\u30fc\u30fe\u3101"+
- "\u3107\u312e\u3133\u3190\u31a2\u31b9\u31f2\u3201\u3402\u4db7\u4e02\u9fbd"+
- "\ua002\ua48e\ua802\ua803\ua805\ua807\ua809\ua80c\ua80e\ua824\uac02\ud7a5"+
- "\uf902\ufa2f\ufa32\ufa6c\ufa72\ufadb\ufb02\ufb08\ufb15\ufb19\ufb1f\ufb1f"+
- "\ufb21\ufb2a\ufb2c\ufb38\ufb3a\ufb3e\ufb40\ufb40\ufb42\ufb43\ufb45\ufb46"+
- "\ufb48\ufbb3\ufbd5\ufd3f\ufd52\ufd91\ufd94\ufdc9\ufdf2\ufdfd\ufe72\ufe76"+
- "\ufe78\ufefe\uff23\uff3c\uff43\uff5c\uff68\uffc0\uffc4\uffc9\uffcc\uffd1"+
- "\uffd4\uffd9\uffdc\uffde\u0096\2\62;\u0302\u0371\u0485\u0488\u0593\u05bb"+
- "\u05bd\u05bf\u05c1\u05c1\u05c3\u05c4\u05c6\u05c7\u05c9\u05c9\u0612\u0617"+
- "\u064d\u0660\u0662\u066b\u0672\u0672\u06d8\u06de\u06e1\u06e6\u06e9\u06ea"+
- "\u06ec\u06ef\u06f2\u06fb\u0713\u0713\u0732\u074c\u07a8\u07b2\u0903\u0905"+
- "\u093e\u093e\u0940\u094f\u0953\u0956\u0964\u0965\u0968\u0971\u0983\u0985"+
- "\u09be\u09be\u09c0\u09c6\u09c9\u09ca\u09cd\u09cf\u09d9\u09d9\u09e4\u09e5"+
- "\u09e8\u09f1\u0a03\u0a05\u0a3e\u0a3e\u0a40\u0a44\u0a49\u0a4a\u0a4d\u0a4f"+
- "\u0a68\u0a73\u0a83\u0a85\u0abe\u0abe\u0ac0\u0ac7\u0ac9\u0acb\u0acd\u0acf"+
- "\u0ae4\u0ae5\u0ae8\u0af1\u0b03\u0b05\u0b3e\u0b3e\u0b40\u0b45\u0b49\u0b4a"+
- "\u0b4d\u0b4f\u0b58\u0b59\u0b68\u0b71\u0b84\u0b84\u0bc0\u0bc4\u0bc8\u0bca"+
- "\u0bcc\u0bcf\u0bd9\u0bd9\u0be8\u0bf1\u0c03\u0c05\u0c40\u0c46\u0c48\u0c4a"+
- "\u0c4c\u0c4f\u0c57\u0c58\u0c68\u0c71\u0c84\u0c85\u0cbe\u0cbe\u0cc0\u0cc6"+
- "\u0cc8\u0cca\u0ccc\u0ccf\u0cd7\u0cd8\u0ce8\u0cf1\u0d04\u0d05\u0d40\u0d45"+
- "\u0d48\u0d4a\u0d4c\u0d4f\u0d59\u0d59\u0d68\u0d71\u0d84\u0d85\u0dcc\u0dcc"+
- "\u0dd1\u0dd6\u0dd8\u0dd8\u0dda\u0de1\u0df4\u0df5\u0e33\u0e33\u0e36\u0e3c"+
- "\u0e49\u0e50\u0e52\u0e5b\u0eb3\u0eb3\u0eb6\u0ebb\u0ebd\u0ebe\u0eca\u0ecf"+
- "\u0ed2\u0edb\u0f1a\u0f1b\u0f22\u0f2b\u0f37\u0f37\u0f39\u0f39\u0f3b\u0f3b"+
- "\u0f40\u0f41\u0f73\u0f86\u0f88\u0f89\u0f92\u0f99\u0f9b\u0fbe\u0fc8\u0fc8"+
- "\u102e\u1034\u1038\u103b\u1042\u104b\u1058\u105b\u1361\u1361\u136b\u1373"+
- "\u1714\u1716\u1734\u1736\u1754\u1755\u1774\u1775\u17b8\u17d5\u17df\u17df"+
- "\u17e2\u17eb\u180d\u180f\u1812\u181b\u18ab\u18ab\u1922\u192d\u1932\u193d"+
- "\u1948\u1951\u19b2\u19c2\u19ca\u19cb\u19d2\u19db\u1a19\u1a1d\u1dc2\u1dc5"+
- "\u2041\u2042\u2056\u2056\u20d2\u20de\u20e3\u20e3\u20e7\u20ed\u302c\u3031"+
- "\u309b\u309c\ua804\ua804\ua808\ua808\ua80d\ua80d\ua825\ua829\ufb20\ufb20"+
- "\ufe02\ufe11\ufe22\ufe25\ufe35\ufe36\ufe4f\ufe51\uff12\uff1b\uff41\uff41"+
- "\2\u0353\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2"+
- "\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27"+
- "\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2"+
- "\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2"+
- "\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2"+
- "\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2"+
- "\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S"+
- "\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2"+
- "\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2"+
- "\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y"+
- "\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3"+
- "\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2"+
- "\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095"+
- "\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2"+
- "\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7"+
- "\3\2\2\2\2\u00a9\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2"+
- "\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd"+
- "\3\2\2\2\2\u00cf\3\2\2\2\3\u00db\3\2\2\2\5\u00e2\3\2\2\2\7\u00e4\3\2\2"+
- "\2\t\u00e9\3\2\2\2\13\u00ec\3\2\2\2\r\u00ef\3\2\2\2\17\u00f4\3\2\2\2\21"+
- "\u00f7\3\2\2\2\23\u00f9\3\2\2\2\25\u00fb\3\2\2\2\27\u0100\3\2\2\2\31\u0102"+
- "\3\2\2\2\33\u0104\3\2\2\2\35\u010b\3\2\2\2\37\u0114\3\2\2\2!\u0117\3\2"+
- "\2\2#\u011d\3\2\2\2%\u0126\3\2\2\2\'\u012d\3\2\2\2)\u0136\3\2\2\2+\u013d"+
- "\3\2\2\2-\u0144\3\2\2\2/\u0149\3\2\2\2\61\u014d\3\2\2\2\63\u0152\3\2\2"+
- "\2\65\u0158\3\2\2\2\67\u015d\3\2\2\29\u0164\3\2\2\2;\u016a\3\2\2\2=\u016d"+
- "\3\2\2\2?\u016f\3\2\2\2A\u0172\3\2\2\2C\u0177\3\2\2\2E\u017c\3\2\2\2G"+
- "\u0184\3\2\2\2I\u018a\3\2\2\2K\u018e\3\2\2\2M\u0195\3\2\2\2O\u019a\3\2"+
- "\2\2Q\u019f\3\2\2\2S\u01a7\3\2\2\2U\u01ac\3\2\2\2W\u01bb\3\2\2\2Y\u01be"+
- "\3\2\2\2[\u01c1\3\2\2\2]\u01c8\3\2\2\2_\u01cf\3\2\2\2a\u01d8\3\2\2\2c"+
- "\u01dd\3\2\2\2e\u01e2\3\2\2\2g\u01e7\3\2\2\2i\u01ed\3\2\2\2k\u01f1\3\2"+
- "\2\2m\u01f4\3\2\2\2o\u01ff\3\2\2\2q\u0209\3\2\2\2s\u0212\3\2\2\2u\u0217"+
- "\3\2\2\2w\u021d\3\2\2\2y\u0224\3\2\2\2{\u022a\3\2\2\2}\u022c\3\2\2\2\177"+
- "\u022f\3\2\2\2\u0081\u0232\3\2\2\2\u0083\u0236\3\2\2\2\u0085\u023a\3\2"+
- "\2\2\u0087\u023d\3\2\2\2\u0089\u023f\3\2\2\2\u008b\u0242\3\2\2\2\u008d"+
- "\u0244\3\2\2\2\u008f\u0247\3\2\2\2\u0091\u024a\3\2\2\2\u0093\u024c\3\2"+
- "\2\2\u0095\u024e\3\2\2\2\u0097\u0250\3\2\2\2\u0099\u0252\3\2\2\2\u009b"+
- "\u0254\3\2\2\2\u009d\u0257\3\2\2\2\u009f\u0266\3\2\2\2\u00a1\u026a\3\2"+
- "\2\2\u00a3\u026d\3\2\2\2\u00a5\u0270\3\2\2\2\u00a7\u0273\3\2\2\2\u00a9"+
- "\u0278\3\2\2\2\u00ab\u027d\3\2\2\2\u00ad\u0281\3\2\2\2\u00af\u028b\3\2"+
- "\2\2\u00b1\u028f\3\2\2\2\u00b3\u029d\3\2\2\2\u00b5\u02a8\3\2\2\2\u00b7"+
- "\u02ba\3\2\2\2\u00b9\u02be\3\2\2\2\u00bb\u02c0\3\2\2\2\u00bd\u02dc\3\2"+
- "\2\2\u00bf\u02e0\3\2\2\2\u00c1\u02e2\3\2\2\2\u00c3\u02e8\3\2\2\2\u00c5"+
- "\u02eb\3\2\2\2\u00c7\u0305\3\2\2\2\u00c9\u0309\3\2\2\2\u00cb\u0311\3\2"+
- "\2\2\u00cd\u0320\3\2\2\2\u00cf\u0331\3\2\2\2\u00d1\u0333\3\2\2\2\u00d3"+
- "\u0335\3\2\2\2\u00d5\u0337\3\2\2\2\u00d7\u033a\3\2\2\2\u00d9\u033e\3\2"+
- "\2\2\u00db\u00dc\7k\2\2\u00dc\u00dd\7o\2\2\u00dd\u00de\7r\2\2\u00de\u00df"+
- "\7q\2\2\u00df\u00e0\7t\2\2\u00e0\u00e1\7v\2\2\u00e1\4\3\2\2\2\u00e2\u00e3"+
- "\7\60\2\2\u00e3\6\3\2\2\2\u00e4\u00e5\7v\2\2\u00e5\u00e6\7{\2\2\u00e6"+
- "\u00e7\7r\2\2\u00e7\u00e8\7g\2\2\u00e8\b\3\2\2\2\u00e9\u00ea\7k\2\2\u00ea"+
- "\u00eb\7u\2\2\u00eb\n\3\2\2\2\u00ec\u00ed\7U\2\2\u00ed\u00ee\7K\2\2\u00ee"+
- "\f\3\2\2\2\u00ef\u00f0\7w\2\2\u00f0\u00f1\7p\2\2\u00f1\u00f2\7k\2\2\u00f2"+
- "\u00f3\7v\2\2\u00f3\16\3\2\2\2\u00f4\u00f5\7q\2\2\u00f5\u00f6\7h\2\2\u00f6"+
- "\20\3\2\2\2\u00f7\u00f8\7.\2\2\u00f8\22\3\2\2\2\u00f9\u00fa\7<\2\2\u00fa"+
- "\24\3\2\2\2\u00fb\u00fc\7g\2\2\u00fc\u00fd\7p\2\2\u00fd\u00fe\7w\2\2\u00fe"+
- "\u00ff\7o\2\2\u00ff\26\3\2\2\2\u0100\u0101\7?\2\2\u0101\30\3\2\2\2\u0102"+
- "\u0103\7#\2\2\u0103\32\3\2\2\2\u0104\u0105\7u\2\2\u0105\u0106\7v\2\2\u0106"+
- "\u0107\7t\2\2\u0107\u0108\7w\2\2\u0108\u0109\7e\2\2\u0109\u010a\7v\2\2"+
- "\u010a\34\3\2\2\2\u010b\u010c\7k\2\2\u010c\u010d\7p\2\2\u010d\u010e\7"+
- "j\2\2\u010e\u010f\7g\2\2\u010f\u0110\7t\2\2\u0110\u0111\7k\2\2\u0111\u0112"+
- "\7v\2\2\u0112\u0113\7u\2\2\u0113\36\3\2\2\2\u0114\u0115\7?\2\2\u0115\u0116"+
- "\7?\2\2\u0116 \3\2\2\2\u0117\u0118\7c\2\2\u0118\u0119\7e\2\2\u0119\u011a"+
- "\7v\2\2\u011a\u011b\7q\2\2\u011b\u011c\7t\2\2\u011c\"\3\2\2\2\u011d\u011e"+
- "\7u\2\2\u011e\u011f\7e\2\2\u011f\u0120\7g\2\2\u0120\u0121\7p\2\2\u0121"+
- "\u0122\7c\2\2\u0122\u0123\7t\2\2\u0123\u0124\7k\2\2\u0124\u0125\7q\2\2"+
- "\u0125$\3\2\2\2\u0126\u0127\7c\2\2\u0127\u0128\7e\2\2\u0128\u0129\7v\2"+
- "\2\u0129\u012a\7k\2\2\u012a\u012b\7q\2\2\u012b\u012c\7p\2\2\u012c&\3\2"+
- "\2\2\u012d\u012e\7o\2\2\u012e\u012f\7q\2\2\u012f\u0130\7f\2\2\u0130\u0131"+
- "\7k\2\2\u0131\u0132\7h\2\2\u0132\u0133\7k\2\2\u0133\u0134\7g\2\2\u0134"+
- "\u0135\7t\2\2\u0135(\3\2\2\2\u0136\u0137\7g\2\2\u0137\u0138\7z\2\2\u0138"+
- "\u0139\7v\2\2\u0139\u013a\7g\2\2\u013a\u013b\7p\2\2\u013b\u013c\7f\2\2"+
- "\u013c*\3\2\2\2\u013d\u013e\7i\2\2\u013e\u013f\7n\2\2\u013f\u0140\7q\2"+
- "\2\u0140\u0141\7d\2\2\u0141\u0142\7c\2\2\u0142\u0143\7n\2\2\u0143,\3\2"+
- "\2\2\u0144\u0145\7n\2\2\u0145\u0146\7k\2\2\u0146\u0147\7u\2\2\u0147\u0148"+
- "\7v\2\2\u0148.\3\2\2\2\u0149\u014a\7k\2\2\u014a\u014b\7p\2\2\u014b\u014c"+
- "\7v\2\2\u014c\60\3\2\2\2\u014d\u014e\7w\2\2\u014e\u014f\7k\2\2\u014f\u0150"+
- "\7p\2\2\u0150\u0151\7v\2\2\u0151\62\3\2\2\2\u0152\u0153\7h\2\2\u0153\u0154"+
- "\7n\2\2\u0154\u0155\7q\2\2\u0155\u0156\7c\2\2\u0156\u0157\7v\2\2\u0157"+
- "\64\3\2\2\2\u0158\u0159\7d\2\2\u0159\u015a\7q\2\2\u015a\u015b\7q\2\2\u015b"+
- "\u015c\7n\2\2\u015c\66\3\2\2\2\u015d\u015e\7u\2\2\u015e\u015f\7v\2\2\u015f"+
- "\u0160\7t\2\2\u0160\u0161\7k\2\2\u0161\u0162\7p\2\2\u0162\u0163\7i\2\2"+
- "\u01638\3\2\2\2\u0164\u0165\7g\2\2\u0165\u0166\7x\2\2\u0166\u0167\7g\2"+
- "\2\u0167\u0168\7p\2\2\u0168\u0169\7v\2\2\u0169:\3\2\2\2\u016a\u016b\7"+
- "k\2\2\u016b\u016c\7h\2\2\u016c<\3\2\2\2\u016d\u016e\7B\2\2\u016e>\3\2"+
- "\2\2\u016f\u0170\7c\2\2\u0170\u0171\7u\2\2\u0171@\3\2\2\2\u0172\u0173"+
- "\7t\2\2\u0173\u0174\7k\2\2\u0174\u0175\7u\2\2\u0175\u0176\7g\2\2\u0176"+
- "B\3\2\2\2\u0177\u0178\7h\2\2\u0178\u0179\7c\2\2\u0179\u017a\7n\2\2\u017a"+
- "\u017b\7n\2\2\u017bD\3\2\2\2\u017c\u017d\7g\2\2\u017d\u017e\7n\2\2\u017e"+
- "\u017f\7c\2\2\u017f\u0180\7r\2\2\u0180\u0181\7u\2\2\u0181\u0182\7g\2\2"+
- "\u0182\u0183\7f\2\2\u0183F\3\2\2\2\u0184\u0185\7g\2\2\u0185\u0186\7x\2"+
- "\2\u0186\u0187\7g\2\2\u0187\u0188\7t\2\2\u0188\u0189\7{\2\2\u0189H\3\2"+
- "\2\2\u018a\u018b\7x\2\2\u018b\u018c\7c\2\2\u018c\u018d\7t\2\2\u018dJ\3"+
- "\2\2\2\u018e\u018f\7u\2\2\u018f\u0190\7c\2\2\u0190\u0191\7o\2\2\u0191"+
- "\u0192\7r\2\2\u0192\u0193\7n\2\2\u0193\u0194\7g\2\2\u0194L\3\2\2\2\u0195"+
- "\u0196\7y\2\2\u0196\u0197\7k\2\2\u0197\u0198\7v\2\2\u0198\u0199\7j\2\2"+
- "\u0199N\3\2\2\2\u019a\u019b\7m\2\2\u019b\u019c\7g\2\2\u019c\u019d\7g\2"+
- "\2\u019d\u019e\7r\2\2\u019eP\3\2\2\2\u019f\u01a0\7f\2\2\u01a0\u01a1\7"+
- "g\2\2\u01a1\u01a2\7h\2\2\u01a2\u01a3\7c\2\2\u01a3\u01a4\7w\2\2\u01a4\u01a5"+
- "\7n\2\2\u01a5\u01a6\7v\2\2\u01a6R\3\2\2\2\u01a7\u01a8\7j\2\2\u01a8\u01a9"+
- "\7c\2\2\u01a9\u01aa\7t\2\2\u01aa\u01ab\7f\2\2\u01abT\3\2\2\2\u01ac\u01ad"+
- "\7t\2\2\u01ad\u01ae\7g\2\2\u01ae\u01af\7o\2\2\u01af\u01b0\7q\2\2\u01b0"+
- "\u01b1\7x\2\2\u01b1\u01b2\7g\2\2\u01b2\u01b3\7a\2\2\u01b3\u01b4\7f\2\2"+
- "\u01b4\u01b5\7g\2\2\u01b5\u01b6\7h\2\2\u01b6\u01b7\7c\2\2\u01b7\u01b8"+
- "\7w\2\2\u01b8\u01b9\7n\2\2\u01b9\u01ba\7v\2\2\u01baV\3\2\2\2\u01bb\u01bc"+
- "\7q\2\2\u01bc\u01bd\7p\2\2\u01bdX\3\2\2\2\u01be\u01bf\7f\2\2\u01bf\u01c0"+
- "\7q\2\2\u01c0Z\3\2\2\2\u01c1\u01c2\7u\2\2\u01c2\u01c3\7g\2\2\u01c3\u01c4"+
- "\7t\2\2\u01c4\u01c5\7k\2\2\u01c5\u01c6\7c\2\2\u01c6\u01c7\7n\2\2\u01c7"+
- "\\\3\2\2\2\u01c8\u01c9\7q\2\2\u01c9\u01ca\7p\2\2\u01ca\u01cb\7g\2\2\u01cb"+
- "\u01cc\7a\2\2\u01cc\u01cd\7q\2\2\u01cd\u01ce\7h\2\2\u01ce^\3\2\2\2\u01cf"+
- "\u01d0\7r\2\2\u01d0\u01d1\7c\2\2\u01d1\u01d2\7t\2\2\u01d2\u01d3\7c\2\2"+
- "\u01d3\u01d4\7n\2\2\u01d4\u01d5\7n\2\2\u01d5\u01d6\7g\2\2\u01d6\u01d7"+
- "\7n\2\2\u01d7`\3\2\2\2\u01d8\u01d9\7y\2\2\u01d9\u01da\7c\2\2\u01da\u01db"+
- "\7k\2\2\u01db\u01dc\7v\2\2\u01dcb\3\2\2\2\u01dd\u01de\7g\2\2\u01de\u01df"+
- "\7o\2\2\u01df\u01e0\7k\2\2\u01e0\u01e1\7v\2\2\u01e1d\3\2\2\2\u01e2\u01e3"+
- "\7e\2\2\u01e3\u01e4\7c\2\2\u01e4\u01e5\7n\2\2\u01e5\u01e6\7n\2\2\u01e6"+
- "f\3\2\2\2\u01e7\u01e8\7w\2\2\u01e8\u01e9\7p\2\2\u01e9\u01ea\7v\2\2\u01ea"+
- "\u01eb\7k\2\2\u01eb\u01ec\7n\2\2\u01ech\3\2\2\2\u01ed\u01ee\7f\2\2\u01ee"+
- "\u01ef\7g\2\2\u01ef\u01f0\7h\2\2\u01f0j\3\2\2\2\u01f1\u01f2\7/\2\2\u01f2"+
- "\u01f3\7@\2\2\u01f3l\3\2\2\2\u01f4\u01f5\7g\2\2\u01f5\u01f6\7z\2\2\u01f6"+
- "\u01f7\7r\2\2\u01f7\u01f8\7t\2\2\u01f8\u01f9\7g\2\2\u01f9\u01fa\7u\2\2"+
- "\u01fa\u01fb\7u\2\2\u01fb\u01fc\7k\2\2\u01fc\u01fd\7q\2\2\u01fd\u01fe"+
- "\7p\2\2\u01fen\3\2\2\2\u01ff\u0200\7w\2\2\u0200\u0201\7p\2\2\u0201\u0202"+
- "\7f\2\2\u0202\u0203\7g\2\2\u0203\u0204\7h\2\2\u0204\u0205\7k\2\2\u0205"+
- "\u0206\7p\2\2\u0206\u0207\7g\2\2\u0207\u0208\7f\2\2\u0208p\3\2\2\2\u0209"+
- "\u020a\7g\2\2\u020a\u020b\7z\2\2\u020b\u020c\7v\2\2\u020c\u020d\7g\2\2"+
- "\u020d\u020e\7t\2\2\u020e\u020f\7p\2\2\u020f\u0210\7c\2\2\u0210\u0211"+
- "\7n\2\2\u0211r\3\2\2\2\u0212\u0213\7q\2\2\u0213\u0214\7p\2\2\u0214\u0215"+
- "\7n\2\2\u0215\u0216\7{\2\2\u0216t\3\2\2\2\u0217\u0218\7e\2\2\u0218\u0219"+
- "\7q\2\2\u0219\u021a\7x\2\2\u021a\u021b\7g\2\2\u021b\u021c\7t\2\2\u021c"+
- "v\3\2\2\2\u021d\u021e\7t\2\2\u021e\u021f\7g\2\2\u021f\u0220\7e\2\2\u0220"+
- "\u0221\7q\2\2\u0221\u0222\7t\2\2\u0222\u0223\7f\2\2\u0223x\3\2\2\2\u0224"+
- "\u0225\7t\2\2\u0225\u0226\7c\2\2\u0226\u0227\7p\2\2\u0227\u0228\7i\2\2"+
- "\u0228\u0229\7g\2\2\u0229z\3\2\2\2\u022a\u022b\7A\2\2\u022b|\3\2\2\2\u022c"+
- "\u022d\7?\2\2\u022d\u022e\7@\2\2\u022e~\3\2\2\2\u022f\u0230\7q\2\2\u0230"+
- "\u0231\7t\2\2\u0231\u0080\3\2\2\2\u0232\u0233\7c\2\2\u0233\u0234\7p\2"+
- "\2\u0234\u0235\7f\2\2\u0235\u0082\3\2\2\2\u0236\u0237\7p\2\2\u0237\u0238"+
- "\7q\2\2\u0238\u0239\7v\2\2\u0239\u0084\3\2\2\2\u023a\u023b\7#\2\2\u023b"+
- "\u023c\7?\2\2\u023c\u0086\3\2\2\2\u023d\u023e\7>\2\2\u023e\u0088\3\2\2"+
- "\2\u023f\u0240\7>\2\2\u0240\u0241\7?\2\2\u0241\u008a\3\2\2\2\u0242\u0243"+
- "\7@\2\2\u0243\u008c\3\2\2\2\u0244\u0245\7@\2\2\u0245\u0246\7?\2\2\u0246"+
- "\u008e\3\2\2\2\u0247\u0248\7k\2\2\u0248\u0249\7p\2\2\u0249\u0090\3\2\2"+
- "\2\u024a\u024b\7-\2\2\u024b\u0092\3\2\2\2\u024c\u024d\7/\2\2\u024d\u0094"+
- "\3\2\2\2\u024e\u024f\7,\2\2\u024f\u0096\3\2\2\2\u0250\u0251\7\61\2\2\u0251"+
- "\u0098\3\2\2\2\u0252\u0253\7\'\2\2\u0253\u009a\3\2\2\2\u0254\u0255\7k"+
- "\2\2\u0255\u0256\7v\2\2\u0256\u009c\3\2\2\2\u0257\u0258\7\60\2\2\u0258"+
- "\u0259\7\60\2\2\u0259\u009e\3\2\2\2\u025a\u025b\6P\2\2\u025b\u0267\5\u00ab"+
- "V\2\u025c\u025e\7\17\2\2\u025d\u025c\3\2\2\2\u025d\u025e\3\2\2\2\u025e"+
- "\u025f\3\2\2\2\u025f\u0262\7\f\2\2\u0260\u0262\4\16\17\2\u0261\u025d\3"+
- "\2\2\2\u0261\u0260\3\2\2\2\u0262\u0264\3\2\2\2\u0263\u0265\5\u00abV\2"+
- "\u0264\u0263\3\2\2\2\u0264\u0265\3\2\2\2\u0265\u0267\3\2\2\2\u0266\u025a"+
- "\3\2\2\2\u0266\u0261\3\2\2\2\u0267\u0268\3\2\2\2\u0268\u0269\bP\2\2\u0269"+
- "\u00a0\3\2\2\2\u026a\u026b\7]\2\2\u026b\u026c\bQ\3\2\u026c\u00a2\3\2\2"+
- "\2\u026d\u026e\7_\2\2\u026e\u026f\bR\4\2\u026f\u00a4\3\2\2\2\u0270\u0271"+
- "\7*\2\2\u0271\u0272\bS\5\2\u0272\u00a6\3\2\2\2\u0273\u0274\7+\2\2\u0274"+
- "\u0275\bT\6\2\u0275\u00a8\3\2\2\2\u0276\u0279\5\u00abV\2\u0277\u0279\5"+
- "\u00adW\2\u0278\u0276\3\2\2\2\u0278\u0277\3\2\2\2\u0279\u027a\3\2\2\2"+
- "\u027a\u027b\bU\7\2\u027b\u00aa\3\2\2\2\u027c\u027e\t\2\2\2\u027d\u027c"+
- "\3\2\2\2\u027e\u027f\3\2\2\2\u027f\u027d\3\2\2\2\u027f\u0280\3\2\2\2\u0280"+
- "\u00ac\3\2\2\2\u0281\u0283\7^\2\2\u0282\u0284\5\u00abV\2\u0283\u0282\3"+
- "\2\2\2\u0283\u0284\3\2\2\2\u0284\u0286\3\2\2\2\u0285\u0287\7\17\2\2\u0286"+
- "\u0285\3\2\2\2\u0286\u0287\3\2\2\2\u0287\u0288\3\2\2\2\u0288\u0289\7\f"+
- "\2\2\u0289\u00ae\3\2\2\2\u028a\u028c\7\17\2\2\u028b\u028a\3\2\2\2\u028b"+
- "\u028c\3\2\2\2\u028c\u028d\3\2\2\2\u028d\u028e\7\f\2\2\u028e\u00b0\3\2"+
- "\2\2\u028f\u0290\7\61\2\2\u0290\u0291\7,\2\2\u0291\u0295\3\2\2\2\u0292"+
- "\u0294\13\2\2\2\u0293\u0292\3\2\2\2\u0294\u0297\3\2\2\2\u0295\u0296\3"+
- "\2\2\2\u0295\u0293\3\2\2\2\u0296\u0298\3\2\2\2\u0297\u0295\3\2\2\2\u0298"+
- "\u0299\7,\2\2\u0299\u029a\7\61\2\2\u029a\u029b\3\2\2\2\u029b\u029c\bY"+
- "\7\2\u029c\u00b2\3\2\2\2\u029d\u02a1\7%\2\2\u029e\u02a0\n\3\2\2\u029f"+
- "\u029e\3\2\2\2\u02a0\u02a3\3\2\2\2\u02a1\u029f\3\2\2\2\u02a1\u02a2\3\2"+
- "\2\2\u02a2\u02a4\3\2\2\2\u02a3\u02a1\3\2\2\2\u02a4\u02a5\bZ\7\2\u02a5"+
- "\u00b4\3\2\2\2\u02a6\u02a9\5\u00b7\\\2\u02a7\u02a9\5\u00bd_\2\u02a8\u02a6"+
- "\3\2\2\2\u02a8\u02a7\3\2\2\2\u02a9\u00b6\3\2\2\2\u02aa\u02ae\7$\2\2\u02ab"+
- "\u02ad\5\u00b9]\2\u02ac\u02ab\3\2\2\2\u02ad\u02b0\3\2\2\2\u02ae\u02ac"+
- "\3\2\2\2\u02ae\u02af\3\2\2\2\u02af\u02b1\3\2\2\2\u02b0\u02ae\3\2\2\2\u02b1"+
- "\u02bb\7$\2\2\u02b2\u02b6\7)\2\2\u02b3\u02b5\5\u00b9]\2\u02b4\u02b3\3"+
- "\2\2\2\u02b5\u02b8\3\2\2\2\u02b6\u02b4\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7"+
- "\u02b9\3\2\2\2\u02b8\u02b6\3\2\2\2\u02b9\u02bb\7)\2\2\u02ba\u02aa\3\2"+
- "\2\2\u02ba\u02b2\3\2\2\2\u02bb\u00b8\3\2\2\2\u02bc\u02bf\5\u00bb^\2\u02bd"+
- "\u02bf\5\u00c3b\2\u02be\u02bc\3\2\2\2\u02be\u02bd\3\2\2\2\u02bf\u00ba"+
- "\3\2\2\2\u02c0\u02c1\n\4\2\2\u02c1\u00bc\3\2\2\2\u02c2\u02c3\7$\2\2\u02c3"+
- "\u02c4\7$\2\2\u02c4\u02c5\7$\2\2\u02c5\u02c9\3\2\2\2\u02c6\u02c8\5\u00bf"+
- "`\2\u02c7\u02c6\3\2\2\2\u02c8\u02cb\3\2\2\2\u02c9\u02c7\3\2\2\2\u02c9"+
- "\u02ca\3\2\2\2\u02ca\u02cc\3\2\2\2\u02cb\u02c9\3\2\2\2\u02cc\u02cd\7$"+
- "\2\2\u02cd\u02ce\7$\2\2\u02ce\u02dd\7$\2\2\u02cf\u02d0\7)\2\2\u02d0\u02d1"+
- "\7)\2\2\u02d1\u02d2\7)\2\2\u02d2\u02d6\3\2\2\2\u02d3\u02d5\5\u00bf`\2"+
- "\u02d4\u02d3\3\2\2\2\u02d5\u02d8\3\2\2\2\u02d6\u02d4\3\2\2\2\u02d6\u02d7"+
- "\3\2\2\2\u02d7\u02d9\3\2\2\2\u02d8\u02d6\3\2\2\2\u02d9\u02da\7)\2\2\u02da"+
- "\u02db\7)\2\2\u02db\u02dd\7)\2\2\u02dc\u02c2\3\2\2\2\u02dc\u02cf\3\2\2"+
- "\2\u02dd\u00be\3\2\2\2\u02de\u02e1\5\u00c1a\2\u02df\u02e1\5\u00c3b\2\u02e0"+
- "\u02de\3\2\2\2\u02e0\u02df\3\2\2\2\u02e1\u00c0\3\2\2\2\u02e2\u02e3\n\5"+
- "\2\2\u02e3\u00c2\3\2\2\2\u02e4\u02e5\7^\2\2\u02e5\u02e9\13\2\2\2\u02e6"+
- "\u02e7\7^\2\2\u02e7\u02e9\5\u00afX\2\u02e8\u02e4\3\2\2\2\u02e8\u02e6\3"+
- "\2\2\2\u02e9\u00c4\3\2\2\2\u02ea\u02ec\t\6\2\2\u02eb\u02ea\3\2\2\2\u02eb"+
- "\u02ec\3\2\2\2\u02ec\u02f0\3\2\2\2\u02ed\u02ef\5\u00d3j\2\u02ee\u02ed"+
- "\3\2\2\2\u02ef\u02f2\3\2\2\2\u02f0\u02ee\3\2\2\2\u02f0\u02f1\3\2\2\2\u02f1"+
- "\u02f3\3\2\2\2\u02f2\u02f0\3\2\2\2\u02f3\u02f5\7\60\2\2\u02f4\u02f6\5"+
- "\u00d3j\2\u02f5\u02f4\3\2\2\2\u02f6\u02f7\3\2\2\2\u02f7\u02f5\3\2\2\2"+
- "\u02f7\u02f8\3\2\2\2\u02f8\u0302\3\2\2\2\u02f9\u02fb\t\7\2\2\u02fa\u02fc"+
- "\t\6\2\2\u02fb\u02fa\3\2\2\2\u02fb\u02fc\3\2\2\2\u02fc\u02fe\3\2\2\2\u02fd"+
- "\u02ff\5\u00d3j\2\u02fe\u02fd\3\2\2\2\u02ff\u0300\3\2\2\2\u0300\u02fe"+
- "\3\2\2\2\u0300\u0301\3\2\2\2\u0301\u0303\3\2\2\2\u0302\u02f9\3\2\2\2\u0302"+
- "\u0303\3\2\2\2\u0303\u00c6\3\2\2\2\u0304\u0306\5\u00d3j\2\u0305\u0304"+
- "\3\2\2\2\u0306\u0307\3\2\2\2\u0307\u0305\3\2\2\2\u0307\u0308\3\2\2\2\u0308"+
- "\u00c8\3\2\2\2\u0309\u030a\7\62\2\2\u030a\u030b\7z\2\2\u030b\u030d\3\2"+
- "\2\2\u030c\u030e\5\u00d5k\2\u030d\u030c\3\2\2\2\u030e\u030f\3\2\2\2\u030f"+
- "\u030d\3\2\2\2\u030f\u0310\3\2\2\2\u0310\u00ca\3\2\2\2\u0311\u0313\7/"+
- "\2\2\u0312\u0314\5\u00d3j\2\u0313\u0312\3\2\2\2\u0314\u0315\3\2\2\2\u0315"+
- "\u0313\3\2\2\2\u0315\u0316\3\2\2\2\u0316\u00cc\3\2\2\2\u0317\u0318\7v"+
- "\2\2\u0318\u0319\7t\2\2\u0319\u031a\7w\2\2\u031a\u0321\7g\2\2\u031b\u031c"+
- "\7h\2\2\u031c\u031d\7c\2\2\u031d\u031e\7n\2\2\u031e\u031f\7u\2\2\u031f"+
- "\u0321\7g\2\2\u0320\u0317\3\2\2\2\u0320\u031b\3\2\2\2\u0321\u00ce\3\2"+
- "\2\2\u0322\u0326\5\u00d7l\2\u0323\u0325\5\u00d9m\2\u0324\u0323\3\2\2\2"+
- "\u0325\u0328\3\2\2\2\u0326\u0324\3\2\2\2\u0326\u0327\3\2\2\2\u0327\u0332"+
- "\3\2\2\2\u0328\u0326\3\2\2\2\u0329\u032b\7~\2\2\u032a\u032c\5\u00d1i\2"+
- "\u032b\u032a\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u032b\3\2\2\2\u032d\u032e"+
- "\3\2\2\2\u032e\u032f\3\2\2\2\u032f\u0330\7~\2\2\u0330\u0332\3\2\2\2\u0331"+
- "\u0322\3\2\2\2\u0331\u0329\3\2\2\2\u0332\u00d0\3\2\2\2\u0333\u0334\n\b"+
- "\2\2\u0334\u00d2\3\2\2\2\u0335\u0336\t\t\2\2\u0336\u00d4\3\2\2\2\u0337"+
- "\u0338\t\n\2\2\u0338\u00d6\3\2\2\2\u0339\u033b\t\13\2\2\u033a\u0339\3"+
- "\2\2\2\u033b\u00d8\3\2\2\2\u033c\u033f\5\u00d7l\2\u033d\u033f\t\f\2\2"+
- "\u033e\u033c\3\2\2\2\u033e\u033d\3\2\2\2\u033f\u00da\3\2\2\2\'\2\u025d"+
- "\u0261\u0264\u0266\u0278\u027f\u0283\u0286\u028b\u0295\u02a1\u02a8\u02ae"+
- "\u02b6\u02ba\u02be\u02c9\u02d6\u02dc\u02e0\u02e8\u02eb\u02f0\u02f7\u02fb"+
- "\u0300\u0302\u0307\u030f\u0315\u0320\u0326\u032d\u0331\u033a\u033e\b\3"+
- "P\2\3Q\3\3R\4\3S\5\3T\6\b\2\2";
- public static final ATN _ATN =
- new ATNDeserializer().deserialize(_serializedATN.toCharArray());
- static {
- _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
- for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
- _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
- }
- }
-}
\ No newline at end of file
diff --git a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.tokens b/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.tokens
deleted file mode 100644
index 1d302c1..0000000
--- a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Lexer.tokens
+++ /dev/null
@@ -1,175 +0,0 @@
-T__0=1
-T__1=2
-T__2=3
-T__3=4
-T__4=5
-T__5=6
-T__6=7
-T__7=8
-T__8=9
-T__9=10
-T__10=11
-T__11=12
-T__12=13
-T__13=14
-T__14=15
-T__15=16
-T__16=17
-T__17=18
-T__18=19
-T__19=20
-T__20=21
-T__21=22
-T__22=23
-T__23=24
-T__24=25
-T__25=26
-T__26=27
-T__27=28
-T__28=29
-T__29=30
-T__30=31
-T__31=32
-T__32=33
-T__33=34
-T__34=35
-T__35=36
-T__36=37
-T__37=38
-T__38=39
-T__39=40
-T__40=41
-T__41=42
-T__42=43
-T__43=44
-T__44=45
-T__45=46
-T__46=47
-T__47=48
-T__48=49
-T__49=50
-T__50=51
-T__51=52
-T__52=53
-T__53=54
-T__54=55
-T__55=56
-T__56=57
-T__57=58
-T__58=59
-T__59=60
-T__60=61
-T__61=62
-T__62=63
-T__63=64
-T__64=65
-T__65=66
-T__66=67
-T__67=68
-T__68=69
-T__69=70
-T__70=71
-T__71=72
-T__72=73
-T__73=74
-T__74=75
-T__75=76
-T__76=77
-T__77=78
-NEWLINE=79
-OPEN_BRACK=80
-CLOSE_BRACK=81
-OPEN_PAREN=82
-CLOSE_PAREN=83
-SKIP_=84
-BLOCK_COMMENT=85
-LINE_COMMENT=86
-StringLiteral=87
-FloatLiteral=88
-UintLiteral=89
-HexUintLiteral=90
-IntLiteral=91
-BoolLiteral=92
-Identifier=93
-'import'=1
-'.'=2
-'type'=3
-'is'=4
-'SI'=5
-'unit'=6
-'of'=7
-','=8
-':'=9
-'enum'=10
-'='=11
-'!'=12
-'struct'=13
-'inherits'=14
-'=='=15
-'actor'=16
-'scenario'=17
-'action'=18
-'modifier'=19
-'extend'=20
-'global'=21
-'list'=22
-'int'=23
-'uint'=24
-'float'=25
-'bool'=26
-'string'=27
-'event'=28
-'if'=29
-'@'=30
-'as'=31
-'rise'=32
-'fall'=33
-'elapsed'=34
-'every'=35
-'var'=36
-'sample'=37
-'with'=38
-'keep'=39
-'default'=40
-'hard'=41
-'remove_default'=42
-'on'=43
-'do'=44
-'serial'=45
-'one_of'=46
-'parallel'=47
-'wait'=48
-'emit'=49
-'call'=50
-'until'=51
-'def'=52
-'->'=53
-'expression'=54
-'undefined'=55
-'external'=56
-'only'=57
-'cover'=58
-'record'=59
-'range'=60
-'?'=61
-'=>'=62
-'or'=63
-'and'=64
-'not'=65
-'!='=66
-'<'=67
-'<='=68
-'>'=69
-'>='=70
-'in'=71
-'+'=72
-'-'=73
-'*'=74
-'/'=75
-'%'=76
-'it'=77
-'..'=78
-'['=80
-']'=81
-'('=82
-')'=83
diff --git a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Parser.java b/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Parser.java
deleted file mode 100644
index 2c7136b..0000000
--- a/srunner/osc2/osc2_parser/.antlr/OpenSCENARIO2Parser.java
+++ /dev/null
@@ -1,8183 +0,0 @@
-// Generated from /home/kai/openscenario2.0/openscenario2.0_-antlr/osc2-carla-v1-2/osc2_parser/OpenSCENARIO2.g4 by ANTLR 4.9.2
-import org.antlr.v4.runtime.atn.*;
-import org.antlr.v4.runtime.dfa.DFA;
-import org.antlr.v4.runtime.*;
-import org.antlr.v4.runtime.misc.*;
-import org.antlr.v4.runtime.tree.*;
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
-
-@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
-public class OpenSCENARIO2Parser extends Parser {
- static { RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION); }
-
- protected static final DFA[] _decisionToDFA;
- protected static final PredictionContextCache _sharedContextCache =
- new PredictionContextCache();
- public static final int
- T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
- T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
- T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
- T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
- T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
- T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45,
- T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52,
- T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59,
- T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66,
- T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73,
- T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, NEWLINE=79, OPEN_BRACK=80,
- CLOSE_BRACK=81, OPEN_PAREN=82, CLOSE_PAREN=83, SKIP_=84, BLOCK_COMMENT=85,
- LINE_COMMENT=86, StringLiteral=87, FloatLiteral=88, UintLiteral=89, HexUintLiteral=90,
- IntLiteral=91, BoolLiteral=92, Identifier=93, INDENT=94, DEDENT=95;
- public static final int
- RULE_osc_file = 0, RULE_preludeStatement = 1, RULE_importStatement = 2,
- RULE_importReference = 3, RULE_structuredIdentifier = 4, RULE_oscDeclaration = 5,
- RULE_physicalTypeDeclaration = 6, RULE_physicalTypeName = 7, RULE_baseUnitSpecifier = 8,
- RULE_sIBaseUnitSpecifier = 9, RULE_unitDeclaration = 10, RULE_unitSpecifier = 11,
- RULE_sIUnitSpecifier = 12, RULE_sIBaseExponentList = 13, RULE_sIBaseExponent = 14,
- RULE_sIFactor = 15, RULE_sIOffset = 16, RULE_enumDeclaration = 17, RULE_enumMemberDecl = 18,
- RULE_numMemberValue = 19, RULE_enumName = 20, RULE_enumMemberName = 21,
- RULE_enumValueReference = 22, RULE_structDeclaration = 23, RULE_structMemberDecl = 24,
- RULE_fieldName = 25, RULE_structName = 26, RULE_actorDeclaration = 27,
- RULE_actorMemberDecl = 28, RULE_actorName = 29, RULE_scenarioDeclaration = 30,
- RULE_scenarioMemberDecl = 31, RULE_qualifiedBehaviorName = 32, RULE_behaviorName = 33,
- RULE_actionDeclaration = 34, RULE_modifierDeclaration = 35, RULE_modifierName = 36,
- RULE_typeExtension = 37, RULE_enumTypeExtension = 38, RULE_structuredTypeExtension = 39,
- RULE_extendableTypeName = 40, RULE_extensionMemberDecl = 41, RULE_globalParameterDeclaration = 42,
- RULE_typeDeclarator = 43, RULE_nonAggregateTypeDeclarator = 44, RULE_aggregateTypeDeclarator = 45,
- RULE_listTypeDeclarator = 46, RULE_primitiveType = 47, RULE_typeName = 48,
- RULE_eventDeclaration = 49, RULE_eventSpecification = 50, RULE_eventReference = 51,
- RULE_eventFieldDecl = 52, RULE_eventFieldName = 53, RULE_eventName = 54,
- RULE_eventPath = 55, RULE_eventCondition = 56, RULE_riseExpression = 57,
- RULE_fallExpression = 58, RULE_elapsedExpression = 59, RULE_everyExpression = 60,
- RULE_boolExpression = 61, RULE_durationExpression = 62, RULE_fieldDeclaration = 63,
- RULE_parameterDeclaration = 64, RULE_variableDeclaration = 65, RULE_sampleExpression = 66,
- RULE_defaultValue = 67, RULE_parameterWithDeclaration = 68, RULE_parameterWithMember = 69,
- RULE_constraintDeclaration = 70, RULE_keepConstraintDeclaration = 71,
- RULE_constraintQualifier = 72, RULE_constraintExpression = 73, RULE_removeDefaultDeclaration = 74,
- RULE_parameterReference = 75, RULE_modifierInvocation = 76, RULE_behaviorExpression = 77,
- RULE_behaviorSpecification = 78, RULE_onDirective = 79, RULE_onMember = 80,
- RULE_doDirective = 81, RULE_doMember = 82, RULE_composition = 83, RULE_compositionOperator = 84,
- RULE_behaviorInvocation = 85, RULE_behaviorWithDeclaration = 86, RULE_behaviorWithMember = 87,
- RULE_labelName = 88, RULE_actorExpression = 89, RULE_waitDirective = 90,
- RULE_emitDirective = 91, RULE_callDirective = 92, RULE_untilDirective = 93,
- RULE_methodInvocation = 94, RULE_methodDeclaration = 95, RULE_returnType = 96,
- RULE_methodImplementation = 97, RULE_methodQualifier = 98, RULE_methodName = 99,
- RULE_coverageDeclaration = 100, RULE_coverageArgumentList = 101, RULE_expression = 102,
- RULE_ternaryOpExp = 103, RULE_implication = 104, RULE_disjunction = 105,
- RULE_conjunction = 106, RULE_inversion = 107, RULE_relation = 108, RULE_relationalOp = 109,
- RULE_sum = 110, RULE_additiveOp = 111, RULE_term = 112, RULE_multiplicativeOp = 113,
- RULE_factor = 114, RULE_postfixExp = 115, RULE_fieldAccess = 116, RULE_primaryExp = 117,
- RULE_valueExp = 118, RULE_listConstructor = 119, RULE_rangeConstructor = 120,
- RULE_argumentListSpecification = 121, RULE_argumentSpecification = 122,
- RULE_argumentName = 123, RULE_argumentList = 124, RULE_positionalArgument = 125,
- RULE_namedArgument = 126, RULE_physicalLiteral = 127, RULE_integerLiteral = 128;
- private static String[] makeRuleNames() {
- return new String[] {
- "osc_file", "preludeStatement", "importStatement", "importReference",
- "structuredIdentifier", "oscDeclaration", "physicalTypeDeclaration",
- "physicalTypeName", "baseUnitSpecifier", "sIBaseUnitSpecifier", "unitDeclaration",
- "unitSpecifier", "sIUnitSpecifier", "sIBaseExponentList", "sIBaseExponent",
- "sIFactor", "sIOffset", "enumDeclaration", "enumMemberDecl", "numMemberValue",
- "enumName", "enumMemberName", "enumValueReference", "structDeclaration",
- "structMemberDecl", "fieldName", "structName", "actorDeclaration", "actorMemberDecl",
- "actorName", "scenarioDeclaration", "scenarioMemberDecl", "qualifiedBehaviorName",
- "behaviorName", "actionDeclaration", "modifierDeclaration", "modifierName",
- "typeExtension", "enumTypeExtension", "structuredTypeExtension", "extendableTypeName",
- "extensionMemberDecl", "globalParameterDeclaration", "typeDeclarator",
- "nonAggregateTypeDeclarator", "aggregateTypeDeclarator", "listTypeDeclarator",
- "primitiveType", "typeName", "eventDeclaration", "eventSpecification",
- "eventReference", "eventFieldDecl", "eventFieldName", "eventName", "eventPath",
- "eventCondition", "riseExpression", "fallExpression", "elapsedExpression",
- "everyExpression", "boolExpression", "durationExpression", "fieldDeclaration",
- "parameterDeclaration", "variableDeclaration", "sampleExpression", "defaultValue",
- "parameterWithDeclaration", "parameterWithMember", "constraintDeclaration",
- "keepConstraintDeclaration", "constraintQualifier", "constraintExpression",
- "removeDefaultDeclaration", "parameterReference", "modifierInvocation",
- "behaviorExpression", "behaviorSpecification", "onDirective", "onMember",
- "doDirective", "doMember", "composition", "compositionOperator", "behaviorInvocation",
- "behaviorWithDeclaration", "behaviorWithMember", "labelName", "actorExpression",
- "waitDirective", "emitDirective", "callDirective", "untilDirective",
- "methodInvocation", "methodDeclaration", "returnType", "methodImplementation",
- "methodQualifier", "methodName", "coverageDeclaration", "coverageArgumentList",
- "expression", "ternaryOpExp", "implication", "disjunction", "conjunction",
- "inversion", "relation", "relationalOp", "sum", "additiveOp", "term",
- "multiplicativeOp", "factor", "postfixExp", "fieldAccess", "primaryExp",
- "valueExp", "listConstructor", "rangeConstructor", "argumentListSpecification",
- "argumentSpecification", "argumentName", "argumentList", "positionalArgument",
- "namedArgument", "physicalLiteral", "integerLiteral"
- };
- }
- public static final String[] ruleNames = makeRuleNames();
-
- private static String[] makeLiteralNames() {
- return new String[] {
- null, "'import'", "'.'", "'type'", "'is'", "'SI'", "'unit'", "'of'",
- "','", "':'", "'enum'", "'='", "'!'", "'struct'", "'inherits'", "'=='",
- "'actor'", "'scenario'", "'action'", "'modifier'", "'extend'", "'global'",
- "'list'", "'int'", "'uint'", "'float'", "'bool'", "'string'", "'event'",
- "'if'", "'@'", "'as'", "'rise'", "'fall'", "'elapsed'", "'every'", "'var'",
- "'sample'", "'with'", "'keep'", "'default'", "'hard'", "'remove_default'",
- "'on'", "'do'", "'serial'", "'one_of'", "'parallel'", "'wait'", "'emit'",
- "'call'", "'until'", "'def'", "'->'", "'expression'", "'undefined'",
- "'external'", "'only'", "'cover'", "'record'", "'range'", "'?'", "'=>'",
- "'or'", "'and'", "'not'", "'!='", "'<'", "'<='", "'>'", "'>='", "'in'",
- "'+'", "'-'", "'*'", "'/'", "'%'", "'it'", "'..'", null, "'['", "']'",
- "'('", "')'"
- };
- }
- private static final String[] _LITERAL_NAMES = makeLiteralNames();
- private static String[] makeSymbolicNames() {
- return new String[] {
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, "NEWLINE", "OPEN_BRACK", "CLOSE_BRACK",
- "OPEN_PAREN", "CLOSE_PAREN", "SKIP_", "BLOCK_COMMENT", "LINE_COMMENT",
- "StringLiteral", "FloatLiteral", "UintLiteral", "HexUintLiteral", "IntLiteral",
- "BoolLiteral", "Identifier", "INDENT", "DEDENT"
- };
- }
- private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
- public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
-
- /**
- * @deprecated Use {@link #VOCABULARY} instead.
- */
- @Deprecated
- public static final String[] tokenNames;
- static {
- tokenNames = new String[_SYMBOLIC_NAMES.length];
- for (int i = 0; i < tokenNames.length; i++) {
- tokenNames[i] = VOCABULARY.getLiteralName(i);
- if (tokenNames[i] == null) {
- tokenNames[i] = VOCABULARY.getSymbolicName(i);
- }
-
- if (tokenNames[i] == null) {
- tokenNames[i] = "";
- }
- }
- }
-
- @Override
- @Deprecated
- public String[] getTokenNames() {
- return tokenNames;
- }
-
- @Override
-
- public Vocabulary getVocabulary() {
- return VOCABULARY;
- }
-
- @Override
- public String getGrammarFileName() { return "OpenSCENARIO2.g4"; }
-
- @Override
- public String[] getRuleNames() { return ruleNames; }
-
- @Override
- public String getSerializedATN() { return _serializedATN; }
-
- @Override
- public ATN getATN() { return _ATN; }
-
- public OpenSCENARIO2Parser(TokenStream input) {
- super(input);
- _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
- }
-
- public static class Osc_fileContext extends ParserRuleContext {
- public TerminalNode EOF() { return getToken(OpenSCENARIO2Parser.EOF, 0); }
- public List preludeStatement() {
- return getRuleContexts(PreludeStatementContext.class);
- }
- public PreludeStatementContext preludeStatement(int i) {
- return getRuleContext(PreludeStatementContext.class,i);
- }
- public List oscDeclaration() {
- return getRuleContexts(OscDeclarationContext.class);
- }
- public OscDeclarationContext oscDeclaration(int i) {
- return getRuleContext(OscDeclarationContext.class,i);
- }
- public Osc_fileContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_osc_file; }
- }
-
- public final Osc_fileContext osc_file() throws RecognitionException {
- Osc_fileContext _localctx = new Osc_fileContext(_ctx, getState());
- enterRule(_localctx, 0, RULE_osc_file);
- int _la;
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- setState(261);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,0,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- {
- {
- setState(258);
- preludeStatement();
- }
- }
- }
- setState(263);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,0,_ctx);
- }
- setState(267);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__2) | (1L << T__5) | (1L << T__9) | (1L << T__12) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0) || _la==NEWLINE) {
- {
- {
- setState(264);
- oscDeclaration();
- }
- }
- setState(269);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- setState(270);
- match(EOF);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PreludeStatementContext extends ParserRuleContext {
- public ImportStatementContext importStatement() {
- return getRuleContext(ImportStatementContext.class,0);
- }
- public PreludeStatementContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_preludeStatement; }
- }
-
- public final PreludeStatementContext preludeStatement() throws RecognitionException {
- PreludeStatementContext _localctx = new PreludeStatementContext(_ctx, getState());
- enterRule(_localctx, 2, RULE_preludeStatement);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(272);
- importStatement();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ImportStatementContext extends ParserRuleContext {
- public ImportReferenceContext importReference() {
- return getRuleContext(ImportReferenceContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public ImportStatementContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_importStatement; }
- }
-
- public final ImportStatementContext importStatement() throws RecognitionException {
- ImportStatementContext _localctx = new ImportStatementContext(_ctx, getState());
- enterRule(_localctx, 4, RULE_importStatement);
- try {
- setState(279);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__0:
- enterOuterAlt(_localctx, 1);
- {
- setState(274);
- match(T__0);
- setState(275);
- importReference();
- setState(276);
- match(NEWLINE);
- }
- break;
- case NEWLINE:
- enterOuterAlt(_localctx, 2);
- {
- setState(278);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ImportReferenceContext extends ParserRuleContext {
- public TerminalNode StringLiteral() { return getToken(OpenSCENARIO2Parser.StringLiteral, 0); }
- public StructuredIdentifierContext structuredIdentifier() {
- return getRuleContext(StructuredIdentifierContext.class,0);
- }
- public ImportReferenceContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_importReference; }
- }
-
- public final ImportReferenceContext importReference() throws RecognitionException {
- ImportReferenceContext _localctx = new ImportReferenceContext(_ctx, getState());
- enterRule(_localctx, 6, RULE_importReference);
- try {
- setState(283);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case StringLiteral:
- enterOuterAlt(_localctx, 1);
- {
- setState(281);
- match(StringLiteral);
- }
- break;
- case Identifier:
- enterOuterAlt(_localctx, 2);
- {
- setState(282);
- structuredIdentifier(0);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class StructuredIdentifierContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public StructuredIdentifierContext structuredIdentifier() {
- return getRuleContext(StructuredIdentifierContext.class,0);
- }
- public StructuredIdentifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_structuredIdentifier; }
- }
-
- public final StructuredIdentifierContext structuredIdentifier() throws RecognitionException {
- return structuredIdentifier(0);
- }
-
- private StructuredIdentifierContext structuredIdentifier(int _p) throws RecognitionException {
- ParserRuleContext _parentctx = _ctx;
- int _parentState = getState();
- StructuredIdentifierContext _localctx = new StructuredIdentifierContext(_ctx, _parentState);
- StructuredIdentifierContext _prevctx = _localctx;
- int _startState = 8;
- enterRecursionRule(_localctx, 8, RULE_structuredIdentifier, _p);
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- {
- setState(286);
- match(Identifier);
- }
- _ctx.stop = _input.LT(-1);
- setState(293);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,4,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- if ( _parseListeners!=null ) triggerExitRuleEvent();
- _prevctx = _localctx;
- {
- {
- _localctx = new StructuredIdentifierContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_structuredIdentifier);
- setState(288);
- if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
- setState(289);
- match(T__1);
- setState(290);
- match(Identifier);
- }
- }
- }
- setState(295);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,4,_ctx);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- unrollRecursionContexts(_parentctx);
- }
- return _localctx;
- }
-
- public static class OscDeclarationContext extends ParserRuleContext {
- public PhysicalTypeDeclarationContext physicalTypeDeclaration() {
- return getRuleContext(PhysicalTypeDeclarationContext.class,0);
- }
- public UnitDeclarationContext unitDeclaration() {
- return getRuleContext(UnitDeclarationContext.class,0);
- }
- public EnumDeclarationContext enumDeclaration() {
- return getRuleContext(EnumDeclarationContext.class,0);
- }
- public StructDeclarationContext structDeclaration() {
- return getRuleContext(StructDeclarationContext.class,0);
- }
- public ActorDeclarationContext actorDeclaration() {
- return getRuleContext(ActorDeclarationContext.class,0);
- }
- public ActionDeclarationContext actionDeclaration() {
- return getRuleContext(ActionDeclarationContext.class,0);
- }
- public ScenarioDeclarationContext scenarioDeclaration() {
- return getRuleContext(ScenarioDeclarationContext.class,0);
- }
- public ModifierDeclarationContext modifierDeclaration() {
- return getRuleContext(ModifierDeclarationContext.class,0);
- }
- public TypeExtensionContext typeExtension() {
- return getRuleContext(TypeExtensionContext.class,0);
- }
- public GlobalParameterDeclarationContext globalParameterDeclaration() {
- return getRuleContext(GlobalParameterDeclarationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public OscDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_oscDeclaration; }
- }
-
- public final OscDeclarationContext oscDeclaration() throws RecognitionException {
- OscDeclarationContext _localctx = new OscDeclarationContext(_ctx, getState());
- enterRule(_localctx, 10, RULE_oscDeclaration);
- try {
- setState(307);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__2:
- enterOuterAlt(_localctx, 1);
- {
- setState(296);
- physicalTypeDeclaration();
- }
- break;
- case T__5:
- enterOuterAlt(_localctx, 2);
- {
- setState(297);
- unitDeclaration();
- }
- break;
- case T__9:
- enterOuterAlt(_localctx, 3);
- {
- setState(298);
- enumDeclaration();
- }
- break;
- case T__12:
- enterOuterAlt(_localctx, 4);
- {
- setState(299);
- structDeclaration();
- }
- break;
- case T__15:
- enterOuterAlt(_localctx, 5);
- {
- setState(300);
- actorDeclaration();
- }
- break;
- case T__17:
- enterOuterAlt(_localctx, 6);
- {
- setState(301);
- actionDeclaration();
- }
- break;
- case T__16:
- enterOuterAlt(_localctx, 7);
- {
- setState(302);
- scenarioDeclaration();
- }
- break;
- case T__18:
- enterOuterAlt(_localctx, 8);
- {
- setState(303);
- modifierDeclaration();
- }
- break;
- case T__19:
- enterOuterAlt(_localctx, 9);
- {
- setState(304);
- typeExtension();
- }
- break;
- case T__20:
- enterOuterAlt(_localctx, 10);
- {
- setState(305);
- globalParameterDeclaration();
- }
- break;
- case NEWLINE:
- enterOuterAlt(_localctx, 11);
- {
- setState(306);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PhysicalTypeDeclarationContext extends ParserRuleContext {
- public PhysicalTypeNameContext physicalTypeName() {
- return getRuleContext(PhysicalTypeNameContext.class,0);
- }
- public BaseUnitSpecifierContext baseUnitSpecifier() {
- return getRuleContext(BaseUnitSpecifierContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public PhysicalTypeDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_physicalTypeDeclaration; }
- }
-
- public final PhysicalTypeDeclarationContext physicalTypeDeclaration() throws RecognitionException {
- PhysicalTypeDeclarationContext _localctx = new PhysicalTypeDeclarationContext(_ctx, getState());
- enterRule(_localctx, 12, RULE_physicalTypeDeclaration);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(309);
- match(T__2);
- setState(310);
- physicalTypeName();
- setState(311);
- match(T__3);
- setState(312);
- baseUnitSpecifier();
- setState(313);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PhysicalTypeNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public PhysicalTypeNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_physicalTypeName; }
- }
-
- public final PhysicalTypeNameContext physicalTypeName() throws RecognitionException {
- PhysicalTypeNameContext _localctx = new PhysicalTypeNameContext(_ctx, getState());
- enterRule(_localctx, 14, RULE_physicalTypeName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(315);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BaseUnitSpecifierContext extends ParserRuleContext {
- public SIBaseUnitSpecifierContext sIBaseUnitSpecifier() {
- return getRuleContext(SIBaseUnitSpecifierContext.class,0);
- }
- public BaseUnitSpecifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_baseUnitSpecifier; }
- }
-
- public final BaseUnitSpecifierContext baseUnitSpecifier() throws RecognitionException {
- BaseUnitSpecifierContext _localctx = new BaseUnitSpecifierContext(_ctx, getState());
- enterRule(_localctx, 16, RULE_baseUnitSpecifier);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(317);
- sIBaseUnitSpecifier();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SIBaseUnitSpecifierContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public SIBaseExponentListContext sIBaseExponentList() {
- return getRuleContext(SIBaseExponentListContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public SIBaseUnitSpecifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sIBaseUnitSpecifier; }
- }
-
- public final SIBaseUnitSpecifierContext sIBaseUnitSpecifier() throws RecognitionException {
- SIBaseUnitSpecifierContext _localctx = new SIBaseUnitSpecifierContext(_ctx, getState());
- enterRule(_localctx, 18, RULE_sIBaseUnitSpecifier);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(319);
- match(T__4);
- setState(320);
- match(OPEN_PAREN);
- setState(321);
- sIBaseExponentList();
- setState(322);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class UnitDeclarationContext extends ParserRuleContext {
- public Token unitName;
- public PhysicalTypeNameContext physicalTypeName() {
- return getRuleContext(PhysicalTypeNameContext.class,0);
- }
- public UnitSpecifierContext unitSpecifier() {
- return getRuleContext(UnitSpecifierContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public UnitDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_unitDeclaration; }
- }
-
- public final UnitDeclarationContext unitDeclaration() throws RecognitionException {
- UnitDeclarationContext _localctx = new UnitDeclarationContext(_ctx, getState());
- enterRule(_localctx, 20, RULE_unitDeclaration);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(324);
- match(T__5);
- setState(325);
- ((UnitDeclarationContext)_localctx).unitName = match(Identifier);
- setState(326);
- match(T__6);
- setState(327);
- physicalTypeName();
- setState(328);
- match(T__3);
- setState(329);
- unitSpecifier();
- setState(330);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class UnitSpecifierContext extends ParserRuleContext {
- public SIUnitSpecifierContext sIUnitSpecifier() {
- return getRuleContext(SIUnitSpecifierContext.class,0);
- }
- public UnitSpecifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_unitSpecifier; }
- }
-
- public final UnitSpecifierContext unitSpecifier() throws RecognitionException {
- UnitSpecifierContext _localctx = new UnitSpecifierContext(_ctx, getState());
- enterRule(_localctx, 22, RULE_unitSpecifier);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(332);
- sIUnitSpecifier();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SIUnitSpecifierContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public SIBaseExponentListContext sIBaseExponentList() {
- return getRuleContext(SIBaseExponentListContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public SIFactorContext sIFactor() {
- return getRuleContext(SIFactorContext.class,0);
- }
- public SIOffsetContext sIOffset() {
- return getRuleContext(SIOffsetContext.class,0);
- }
- public SIUnitSpecifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sIUnitSpecifier; }
- }
-
- public final SIUnitSpecifierContext sIUnitSpecifier() throws RecognitionException {
- SIUnitSpecifierContext _localctx = new SIUnitSpecifierContext(_ctx, getState());
- enterRule(_localctx, 24, RULE_sIUnitSpecifier);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(334);
- match(T__4);
- setState(335);
- match(OPEN_PAREN);
- setState(336);
- sIBaseExponentList();
- setState(339);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
- case 1:
- {
- setState(337);
- match(T__7);
- setState(338);
- sIFactor();
- }
- break;
- }
- setState(343);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__7) {
- {
- setState(341);
- match(T__7);
- setState(342);
- sIOffset();
- }
- }
-
- setState(345);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SIBaseExponentListContext extends ParserRuleContext {
- public List sIBaseExponent() {
- return getRuleContexts(SIBaseExponentContext.class);
- }
- public SIBaseExponentContext sIBaseExponent(int i) {
- return getRuleContext(SIBaseExponentContext.class,i);
- }
- public SIBaseExponentListContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sIBaseExponentList; }
- }
-
- public final SIBaseExponentListContext sIBaseExponentList() throws RecognitionException {
- SIBaseExponentListContext _localctx = new SIBaseExponentListContext(_ctx, getState());
- enterRule(_localctx, 26, RULE_sIBaseExponentList);
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- setState(347);
- sIBaseExponent();
- setState(352);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,8,_ctx);
- while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1+1 ) {
- {
- {
- setState(348);
- match(T__7);
- setState(349);
- sIBaseExponent();
- }
- }
- }
- setState(354);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,8,_ctx);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SIBaseExponentContext extends ParserRuleContext {
- public Token sIBaseUnitName;
- public IntegerLiteralContext integerLiteral() {
- return getRuleContext(IntegerLiteralContext.class,0);
- }
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public SIBaseExponentContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sIBaseExponent; }
- }
-
- public final SIBaseExponentContext sIBaseExponent() throws RecognitionException {
- SIBaseExponentContext _localctx = new SIBaseExponentContext(_ctx, getState());
- enterRule(_localctx, 28, RULE_sIBaseExponent);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(355);
- ((SIBaseExponentContext)_localctx).sIBaseUnitName = match(Identifier);
-
- unitName = (((SIBaseExponentContext)_localctx).sIBaseUnitName!=null?((SIBaseExponentContext)_localctx).sIBaseUnitName.getText():null);
- if(not (unitName == "kg") and
- not (unitName == "m") and
- not (unitName == "s") and
- not (unitName == "A") and
- not (unitName == "K") and
- not (unitName == "mol") and
- not (unitName == "cd") and
- not (unitName == "factor") and
- not (unitName == "offset") and
- not (unitName == "rad")):
- raise NoViableAltException(self)
-
- setState(357);
- match(T__8);
- setState(358);
- integerLiteral();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SIFactorContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public TerminalNode FloatLiteral() { return getToken(OpenSCENARIO2Parser.FloatLiteral, 0); }
- public IntegerLiteralContext integerLiteral() {
- return getRuleContext(IntegerLiteralContext.class,0);
- }
- public SIFactorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sIFactor; }
- }
-
- public final SIFactorContext sIFactor() throws RecognitionException {
- SIFactorContext _localctx = new SIFactorContext(_ctx, getState());
- enterRule(_localctx, 30, RULE_sIFactor);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(360);
- match(Identifier);
- setState(361);
- match(T__8);
- setState(364);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case FloatLiteral:
- {
- setState(362);
- match(FloatLiteral);
- }
- break;
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- {
- setState(363);
- integerLiteral();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SIOffsetContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public TerminalNode FloatLiteral() { return getToken(OpenSCENARIO2Parser.FloatLiteral, 0); }
- public IntegerLiteralContext integerLiteral() {
- return getRuleContext(IntegerLiteralContext.class,0);
- }
- public SIOffsetContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sIOffset; }
- }
-
- public final SIOffsetContext sIOffset() throws RecognitionException {
- SIOffsetContext _localctx = new SIOffsetContext(_ctx, getState());
- enterRule(_localctx, 32, RULE_sIOffset);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(366);
- match(Identifier);
- setState(367);
- match(T__8);
- setState(370);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case FloatLiteral:
- {
- setState(368);
- match(FloatLiteral);
- }
- break;
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- {
- setState(369);
- integerLiteral();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EnumDeclarationContext extends ParserRuleContext {
- public EnumNameContext enumName() {
- return getRuleContext(EnumNameContext.class,0);
- }
- public TerminalNode OPEN_BRACK() { return getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0); }
- public List enumMemberDecl() {
- return getRuleContexts(EnumMemberDeclContext.class);
- }
- public EnumMemberDeclContext enumMemberDecl(int i) {
- return getRuleContext(EnumMemberDeclContext.class,i);
- }
- public TerminalNode CLOSE_BRACK() { return getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0); }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public EnumDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_enumDeclaration; }
- }
-
- public final EnumDeclarationContext enumDeclaration() throws RecognitionException {
- EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState());
- enterRule(_localctx, 34, RULE_enumDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(372);
- match(T__9);
- setState(373);
- enumName();
- setState(374);
- match(T__8);
- setState(375);
- match(OPEN_BRACK);
- setState(376);
- enumMemberDecl();
- setState(381);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(377);
- match(T__7);
- setState(378);
- enumMemberDecl();
- }
- }
- setState(383);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- setState(384);
- match(CLOSE_BRACK);
- setState(385);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EnumMemberDeclContext extends ParserRuleContext {
- public EnumMemberNameContext enumMemberName() {
- return getRuleContext(EnumMemberNameContext.class,0);
- }
- public NumMemberValueContext numMemberValue() {
- return getRuleContext(NumMemberValueContext.class,0);
- }
- public EnumMemberDeclContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_enumMemberDecl; }
- }
-
- public final EnumMemberDeclContext enumMemberDecl() throws RecognitionException {
- EnumMemberDeclContext _localctx = new EnumMemberDeclContext(_ctx, getState());
- enterRule(_localctx, 36, RULE_enumMemberDecl);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(387);
- enumMemberName();
- setState(390);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__10) {
- {
- setState(388);
- match(T__10);
- setState(389);
- numMemberValue();
- }
- }
-
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class NumMemberValueContext extends ParserRuleContext {
- public TerminalNode UintLiteral() { return getToken(OpenSCENARIO2Parser.UintLiteral, 0); }
- public TerminalNode HexUintLiteral() { return getToken(OpenSCENARIO2Parser.HexUintLiteral, 0); }
- public NumMemberValueContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_numMemberValue; }
- }
-
- public final NumMemberValueContext numMemberValue() throws RecognitionException {
- NumMemberValueContext _localctx = new NumMemberValueContext(_ctx, getState());
- enterRule(_localctx, 38, RULE_numMemberValue);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(392);
- _la = _input.LA(1);
- if ( !(_la==UintLiteral || _la==HexUintLiteral) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EnumNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public EnumNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_enumName; }
- }
-
- public final EnumNameContext enumName() throws RecognitionException {
- EnumNameContext _localctx = new EnumNameContext(_ctx, getState());
- enterRule(_localctx, 40, RULE_enumName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(394);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EnumMemberNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public EnumMemberNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_enumMemberName; }
- }
-
- public final EnumMemberNameContext enumMemberName() throws RecognitionException {
- EnumMemberNameContext _localctx = new EnumMemberNameContext(_ctx, getState());
- enterRule(_localctx, 42, RULE_enumMemberName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(396);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EnumValueReferenceContext extends ParserRuleContext {
- public EnumMemberNameContext enumMemberName() {
- return getRuleContext(EnumMemberNameContext.class,0);
- }
- public EnumNameContext enumName() {
- return getRuleContext(EnumNameContext.class,0);
- }
- public EnumValueReferenceContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_enumValueReference; }
- }
-
- public final EnumValueReferenceContext enumValueReference() throws RecognitionException {
- EnumValueReferenceContext _localctx = new EnumValueReferenceContext(_ctx, getState());
- enterRule(_localctx, 44, RULE_enumValueReference);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(401);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) {
- case 1:
- {
- setState(398);
- enumName();
- setState(399);
- match(T__11);
- }
- break;
- }
- setState(403);
- enumMemberName();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class StructDeclarationContext extends ParserRuleContext {
- public List structName() {
- return getRuleContexts(StructNameContext.class);
- }
- public StructNameContext structName(int i) {
- return getRuleContext(StructNameContext.class,i);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public List structMemberDecl() {
- return getRuleContexts(StructMemberDeclContext.class);
- }
- public StructMemberDeclContext structMemberDecl(int i) {
- return getRuleContext(StructMemberDeclContext.class,i);
- }
- public EnumValueReferenceContext enumValueReference() {
- return getRuleContext(EnumValueReferenceContext.class,0);
- }
- public TerminalNode BoolLiteral() { return getToken(OpenSCENARIO2Parser.BoolLiteral, 0); }
- public StructDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_structDeclaration; }
- }
-
- public final StructDeclarationContext structDeclaration() throws RecognitionException {
- StructDeclarationContext _localctx = new StructDeclarationContext(_ctx, getState());
- enterRule(_localctx, 46, RULE_structDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(405);
- match(T__12);
- setState(406);
- structName();
- setState(420);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__13) {
- {
- setState(407);
- match(T__13);
- setState(408);
- structName();
- setState(418);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(409);
- match(OPEN_PAREN);
- setState(410);
- fieldName();
- setState(411);
- match(T__14);
- setState(414);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case Identifier:
- {
- setState(412);
- enumValueReference();
- }
- break;
- case BoolLiteral:
- {
- setState(413);
- match(BoolLiteral);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- setState(416);
- match(CLOSE_PAREN);
- }
- }
-
- }
- }
-
- setState(433);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__8:
- {
- {
- setState(422);
- match(T__8);
- setState(423);
- match(NEWLINE);
- setState(424);
- match(INDENT);
- setState(426);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(425);
- structMemberDecl();
- }
- }
- setState(428);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__27) | (1L << T__35) | (1L << T__38) | (1L << T__41) | (1L << T__51) | (1L << T__57) | (1L << T__58))) != 0) || _la==Identifier );
- setState(430);
- match(DEDENT);
- }
- }
- break;
- case NEWLINE:
- {
- setState(432);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class StructMemberDeclContext extends ParserRuleContext {
- public EventDeclarationContext eventDeclaration() {
- return getRuleContext(EventDeclarationContext.class,0);
- }
- public FieldDeclarationContext fieldDeclaration() {
- return getRuleContext(FieldDeclarationContext.class,0);
- }
- public ConstraintDeclarationContext constraintDeclaration() {
- return getRuleContext(ConstraintDeclarationContext.class,0);
- }
- public MethodDeclarationContext methodDeclaration() {
- return getRuleContext(MethodDeclarationContext.class,0);
- }
- public CoverageDeclarationContext coverageDeclaration() {
- return getRuleContext(CoverageDeclarationContext.class,0);
- }
- public StructMemberDeclContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_structMemberDecl; }
- }
-
- public final StructMemberDeclContext structMemberDecl() throws RecognitionException {
- StructMemberDeclContext _localctx = new StructMemberDeclContext(_ctx, getState());
- enterRule(_localctx, 48, RULE_structMemberDecl);
- try {
- setState(440);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__27:
- enterOuterAlt(_localctx, 1);
- {
- setState(435);
- eventDeclaration();
- }
- break;
- case T__35:
- case Identifier:
- enterOuterAlt(_localctx, 2);
- {
- setState(436);
- fieldDeclaration();
- }
- break;
- case T__38:
- case T__41:
- enterOuterAlt(_localctx, 3);
- {
- setState(437);
- constraintDeclaration();
- }
- break;
- case T__51:
- enterOuterAlt(_localctx, 4);
- {
- setState(438);
- methodDeclaration();
- }
- break;
- case T__57:
- case T__58:
- enterOuterAlt(_localctx, 5);
- {
- setState(439);
- coverageDeclaration();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class FieldNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public FieldNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_fieldName; }
- }
-
- public final FieldNameContext fieldName() throws RecognitionException {
- FieldNameContext _localctx = new FieldNameContext(_ctx, getState());
- enterRule(_localctx, 50, RULE_fieldName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(442);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class StructNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public StructNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_structName; }
- }
-
- public final StructNameContext structName() throws RecognitionException {
- StructNameContext _localctx = new StructNameContext(_ctx, getState());
- enterRule(_localctx, 52, RULE_structName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(444);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ActorDeclarationContext extends ParserRuleContext {
- public List actorName() {
- return getRuleContexts(ActorNameContext.class);
- }
- public ActorNameContext actorName(int i) {
- return getRuleContext(ActorNameContext.class,i);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public List actorMemberDecl() {
- return getRuleContexts(ActorMemberDeclContext.class);
- }
- public ActorMemberDeclContext actorMemberDecl(int i) {
- return getRuleContext(ActorMemberDeclContext.class,i);
- }
- public EnumValueReferenceContext enumValueReference() {
- return getRuleContext(EnumValueReferenceContext.class,0);
- }
- public TerminalNode BoolLiteral() { return getToken(OpenSCENARIO2Parser.BoolLiteral, 0); }
- public ActorDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_actorDeclaration; }
- }
-
- public final ActorDeclarationContext actorDeclaration() throws RecognitionException {
- ActorDeclarationContext _localctx = new ActorDeclarationContext(_ctx, getState());
- enterRule(_localctx, 54, RULE_actorDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(446);
- match(T__15);
- setState(447);
- actorName();
- setState(461);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__13) {
- {
- setState(448);
- match(T__13);
- setState(449);
- actorName();
- setState(459);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(450);
- match(OPEN_PAREN);
- setState(451);
- fieldName();
- setState(452);
- match(T__14);
- setState(455);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case Identifier:
- {
- setState(453);
- enumValueReference();
- }
- break;
- case BoolLiteral:
- {
- setState(454);
- match(BoolLiteral);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- setState(457);
- match(CLOSE_PAREN);
- }
- }
-
- }
- }
-
- setState(474);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__8:
- {
- {
- setState(463);
- match(T__8);
- setState(464);
- match(NEWLINE);
- setState(465);
- match(INDENT);
- setState(467);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(466);
- actorMemberDecl();
- }
- }
- setState(469);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__27) | (1L << T__35) | (1L << T__38) | (1L << T__41) | (1L << T__51) | (1L << T__57) | (1L << T__58))) != 0) || _la==Identifier );
- setState(471);
- match(DEDENT);
- }
- }
- break;
- case NEWLINE:
- {
- setState(473);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ActorMemberDeclContext extends ParserRuleContext {
- public EventDeclarationContext eventDeclaration() {
- return getRuleContext(EventDeclarationContext.class,0);
- }
- public FieldDeclarationContext fieldDeclaration() {
- return getRuleContext(FieldDeclarationContext.class,0);
- }
- public ConstraintDeclarationContext constraintDeclaration() {
- return getRuleContext(ConstraintDeclarationContext.class,0);
- }
- public MethodDeclarationContext methodDeclaration() {
- return getRuleContext(MethodDeclarationContext.class,0);
- }
- public CoverageDeclarationContext coverageDeclaration() {
- return getRuleContext(CoverageDeclarationContext.class,0);
- }
- public ActorMemberDeclContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_actorMemberDecl; }
- }
-
- public final ActorMemberDeclContext actorMemberDecl() throws RecognitionException {
- ActorMemberDeclContext _localctx = new ActorMemberDeclContext(_ctx, getState());
- enterRule(_localctx, 56, RULE_actorMemberDecl);
- try {
- setState(481);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__27:
- enterOuterAlt(_localctx, 1);
- {
- setState(476);
- eventDeclaration();
- }
- break;
- case T__35:
- case Identifier:
- enterOuterAlt(_localctx, 2);
- {
- setState(477);
- fieldDeclaration();
- }
- break;
- case T__38:
- case T__41:
- enterOuterAlt(_localctx, 3);
- {
- setState(478);
- constraintDeclaration();
- }
- break;
- case T__51:
- enterOuterAlt(_localctx, 4);
- {
- setState(479);
- methodDeclaration();
- }
- break;
- case T__57:
- case T__58:
- enterOuterAlt(_localctx, 5);
- {
- setState(480);
- coverageDeclaration();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ActorNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public ActorNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_actorName; }
- }
-
- public final ActorNameContext actorName() throws RecognitionException {
- ActorNameContext _localctx = new ActorNameContext(_ctx, getState());
- enterRule(_localctx, 58, RULE_actorName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(483);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ScenarioDeclarationContext extends ParserRuleContext {
- public List qualifiedBehaviorName() {
- return getRuleContexts(QualifiedBehaviorNameContext.class);
- }
- public QualifiedBehaviorNameContext qualifiedBehaviorName(int i) {
- return getRuleContext(QualifiedBehaviorNameContext.class,i);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public List scenarioMemberDecl() {
- return getRuleContexts(ScenarioMemberDeclContext.class);
- }
- public ScenarioMemberDeclContext scenarioMemberDecl(int i) {
- return getRuleContext(ScenarioMemberDeclContext.class,i);
- }
- public List behaviorSpecification() {
- return getRuleContexts(BehaviorSpecificationContext.class);
- }
- public BehaviorSpecificationContext behaviorSpecification(int i) {
- return getRuleContext(BehaviorSpecificationContext.class,i);
- }
- public EnumValueReferenceContext enumValueReference() {
- return getRuleContext(EnumValueReferenceContext.class,0);
- }
- public TerminalNode BoolLiteral() { return getToken(OpenSCENARIO2Parser.BoolLiteral, 0); }
- public ScenarioDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_scenarioDeclaration; }
- }
-
- public final ScenarioDeclarationContext scenarioDeclaration() throws RecognitionException {
- ScenarioDeclarationContext _localctx = new ScenarioDeclarationContext(_ctx, getState());
- enterRule(_localctx, 60, RULE_scenarioDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(485);
- match(T__16);
- setState(486);
- qualifiedBehaviorName();
- setState(500);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__13) {
- {
- setState(487);
- match(T__13);
- setState(488);
- qualifiedBehaviorName();
- setState(498);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(489);
- match(OPEN_PAREN);
- setState(490);
- fieldName();
- setState(491);
- match(T__14);
- setState(494);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case Identifier:
- {
- setState(492);
- enumValueReference();
- }
- break;
- case BoolLiteral:
- {
- setState(493);
- match(BoolLiteral);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- setState(496);
- match(CLOSE_PAREN);
- }
- }
-
- }
- }
-
- setState(514);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__8:
- {
- {
- setState(502);
- match(T__8);
- setState(503);
- match(NEWLINE);
- setState(504);
- match(INDENT);
- setState(507);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- setState(507);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__27:
- case T__35:
- case T__38:
- case T__41:
- case T__51:
- case T__57:
- case T__58:
- case T__59:
- case T__64:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- {
- setState(505);
- scenarioMemberDecl();
- }
- break;
- case T__42:
- case T__43:
- {
- setState(506);
- behaviorSpecification();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- setState(509);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__27) | (1L << T__35) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__51) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (T__64 - 65)) | (1L << (T__72 - 65)) | (1L << (T__76 - 65)) | (1L << (OPEN_BRACK - 65)) | (1L << (OPEN_PAREN - 65)) | (1L << (StringLiteral - 65)) | (1L << (FloatLiteral - 65)) | (1L << (UintLiteral - 65)) | (1L << (HexUintLiteral - 65)) | (1L << (IntLiteral - 65)) | (1L << (BoolLiteral - 65)) | (1L << (Identifier - 65)))) != 0) );
- setState(511);
- match(DEDENT);
- }
- }
- break;
- case NEWLINE:
- {
- setState(513);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ScenarioMemberDeclContext extends ParserRuleContext {
- public EventDeclarationContext eventDeclaration() {
- return getRuleContext(EventDeclarationContext.class,0);
- }
- public FieldDeclarationContext fieldDeclaration() {
- return getRuleContext(FieldDeclarationContext.class,0);
- }
- public ConstraintDeclarationContext constraintDeclaration() {
- return getRuleContext(ConstraintDeclarationContext.class,0);
- }
- public MethodDeclarationContext methodDeclaration() {
- return getRuleContext(MethodDeclarationContext.class,0);
- }
- public CoverageDeclarationContext coverageDeclaration() {
- return getRuleContext(CoverageDeclarationContext.class,0);
- }
- public ModifierInvocationContext modifierInvocation() {
- return getRuleContext(ModifierInvocationContext.class,0);
- }
- public ScenarioMemberDeclContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_scenarioMemberDecl; }
- }
-
- public final ScenarioMemberDeclContext scenarioMemberDecl() throws RecognitionException {
- ScenarioMemberDeclContext _localctx = new ScenarioMemberDeclContext(_ctx, getState());
- enterRule(_localctx, 62, RULE_scenarioMemberDecl);
- try {
- setState(522);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(516);
- eventDeclaration();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(517);
- fieldDeclaration();
- }
- break;
- case 3:
- enterOuterAlt(_localctx, 3);
- {
- setState(518);
- constraintDeclaration();
- }
- break;
- case 4:
- enterOuterAlt(_localctx, 4);
- {
- setState(519);
- methodDeclaration();
- }
- break;
- case 5:
- enterOuterAlt(_localctx, 5);
- {
- setState(520);
- coverageDeclaration();
- }
- break;
- case 6:
- enterOuterAlt(_localctx, 6);
- {
- setState(521);
- modifierInvocation();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class QualifiedBehaviorNameContext extends ParserRuleContext {
- public BehaviorNameContext behaviorName() {
- return getRuleContext(BehaviorNameContext.class,0);
- }
- public ActorNameContext actorName() {
- return getRuleContext(ActorNameContext.class,0);
- }
- public QualifiedBehaviorNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_qualifiedBehaviorName; }
- }
-
- public final QualifiedBehaviorNameContext qualifiedBehaviorName() throws RecognitionException {
- QualifiedBehaviorNameContext _localctx = new QualifiedBehaviorNameContext(_ctx, getState());
- enterRule(_localctx, 64, RULE_qualifiedBehaviorName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(527);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) {
- case 1:
- {
- setState(524);
- actorName();
- setState(525);
- match(T__1);
- }
- break;
- }
- setState(529);
- behaviorName();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BehaviorNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public BehaviorNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_behaviorName; }
- }
-
- public final BehaviorNameContext behaviorName() throws RecognitionException {
- BehaviorNameContext _localctx = new BehaviorNameContext(_ctx, getState());
- enterRule(_localctx, 66, RULE_behaviorName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(531);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ActionDeclarationContext extends ParserRuleContext {
- public List qualifiedBehaviorName() {
- return getRuleContexts(QualifiedBehaviorNameContext.class);
- }
- public QualifiedBehaviorNameContext qualifiedBehaviorName(int i) {
- return getRuleContext(QualifiedBehaviorNameContext.class,i);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public List scenarioMemberDecl() {
- return getRuleContexts(ScenarioMemberDeclContext.class);
- }
- public ScenarioMemberDeclContext scenarioMemberDecl(int i) {
- return getRuleContext(ScenarioMemberDeclContext.class,i);
- }
- public List behaviorSpecification() {
- return getRuleContexts(BehaviorSpecificationContext.class);
- }
- public BehaviorSpecificationContext behaviorSpecification(int i) {
- return getRuleContext(BehaviorSpecificationContext.class,i);
- }
- public EnumValueReferenceContext enumValueReference() {
- return getRuleContext(EnumValueReferenceContext.class,0);
- }
- public TerminalNode BoolLiteral() { return getToken(OpenSCENARIO2Parser.BoolLiteral, 0); }
- public ActionDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_actionDeclaration; }
- }
-
- public final ActionDeclarationContext actionDeclaration() throws RecognitionException {
- ActionDeclarationContext _localctx = new ActionDeclarationContext(_ctx, getState());
- enterRule(_localctx, 68, RULE_actionDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(533);
- match(T__17);
- setState(534);
- qualifiedBehaviorName();
- setState(548);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__13) {
- {
- setState(535);
- match(T__13);
- setState(536);
- qualifiedBehaviorName();
- setState(546);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(537);
- match(OPEN_PAREN);
- setState(538);
- fieldName();
- setState(539);
- match(T__14);
- setState(542);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case Identifier:
- {
- setState(540);
- enumValueReference();
- }
- break;
- case BoolLiteral:
- {
- setState(541);
- match(BoolLiteral);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- setState(544);
- match(CLOSE_PAREN);
- }
- }
-
- }
- }
-
- setState(562);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__8:
- {
- {
- setState(550);
- match(T__8);
- setState(551);
- match(NEWLINE);
- setState(552);
- match(INDENT);
- setState(555);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- setState(555);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__27:
- case T__35:
- case T__38:
- case T__41:
- case T__51:
- case T__57:
- case T__58:
- case T__59:
- case T__64:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- {
- setState(553);
- scenarioMemberDecl();
- }
- break;
- case T__42:
- case T__43:
- {
- setState(554);
- behaviorSpecification();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- setState(557);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__27) | (1L << T__35) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__51) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (T__64 - 65)) | (1L << (T__72 - 65)) | (1L << (T__76 - 65)) | (1L << (OPEN_BRACK - 65)) | (1L << (OPEN_PAREN - 65)) | (1L << (StringLiteral - 65)) | (1L << (FloatLiteral - 65)) | (1L << (UintLiteral - 65)) | (1L << (HexUintLiteral - 65)) | (1L << (IntLiteral - 65)) | (1L << (BoolLiteral - 65)) | (1L << (Identifier - 65)))) != 0) );
- setState(559);
- match(DEDENT);
- }
- }
- break;
- case NEWLINE:
- {
- setState(561);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ModifierDeclarationContext extends ParserRuleContext {
- public ModifierNameContext modifierName() {
- return getRuleContext(ModifierNameContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public ActorNameContext actorName() {
- return getRuleContext(ActorNameContext.class,0);
- }
- public QualifiedBehaviorNameContext qualifiedBehaviorName() {
- return getRuleContext(QualifiedBehaviorNameContext.class,0);
- }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public List scenarioMemberDecl() {
- return getRuleContexts(ScenarioMemberDeclContext.class);
- }
- public ScenarioMemberDeclContext scenarioMemberDecl(int i) {
- return getRuleContext(ScenarioMemberDeclContext.class,i);
- }
- public ModifierDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_modifierDeclaration; }
- }
-
- public final ModifierDeclarationContext modifierDeclaration() throws RecognitionException {
- ModifierDeclarationContext _localctx = new ModifierDeclarationContext(_ctx, getState());
- enterRule(_localctx, 70, RULE_modifierDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(564);
- match(T__18);
- setState(568);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) {
- case 1:
- {
- setState(565);
- actorName();
- setState(566);
- match(T__1);
- }
- break;
- }
- setState(570);
- modifierName();
- setState(573);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__6) {
- {
- setState(571);
- match(T__6);
- setState(572);
- qualifiedBehaviorName();
- }
- }
-
- setState(586);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__8:
- {
- {
- setState(575);
- match(T__8);
- setState(576);
- match(NEWLINE);
- setState(577);
- match(INDENT);
- setState(579);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(578);
- scenarioMemberDecl();
- }
- }
- setState(581);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__27) | (1L << T__35) | (1L << T__38) | (1L << T__41) | (1L << T__51) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (T__64 - 65)) | (1L << (T__72 - 65)) | (1L << (T__76 - 65)) | (1L << (OPEN_BRACK - 65)) | (1L << (OPEN_PAREN - 65)) | (1L << (StringLiteral - 65)) | (1L << (FloatLiteral - 65)) | (1L << (UintLiteral - 65)) | (1L << (HexUintLiteral - 65)) | (1L << (IntLiteral - 65)) | (1L << (BoolLiteral - 65)) | (1L << (Identifier - 65)))) != 0) );
- setState(583);
- match(DEDENT);
- }
- }
- break;
- case NEWLINE:
- {
- setState(585);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ModifierNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public ModifierNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_modifierName; }
- }
-
- public final ModifierNameContext modifierName() throws RecognitionException {
- ModifierNameContext _localctx = new ModifierNameContext(_ctx, getState());
- enterRule(_localctx, 72, RULE_modifierName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(588);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class TypeExtensionContext extends ParserRuleContext {
- public EnumTypeExtensionContext enumTypeExtension() {
- return getRuleContext(EnumTypeExtensionContext.class,0);
- }
- public StructuredTypeExtensionContext structuredTypeExtension() {
- return getRuleContext(StructuredTypeExtensionContext.class,0);
- }
- public TypeExtensionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_typeExtension; }
- }
-
- public final TypeExtensionContext typeExtension() throws RecognitionException {
- TypeExtensionContext _localctx = new TypeExtensionContext(_ctx, getState());
- enterRule(_localctx, 74, RULE_typeExtension);
- try {
- setState(592);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,44,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(590);
- enumTypeExtension();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(591);
- structuredTypeExtension();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EnumTypeExtensionContext extends ParserRuleContext {
- public EnumNameContext enumName() {
- return getRuleContext(EnumNameContext.class,0);
- }
- public TerminalNode OPEN_BRACK() { return getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0); }
- public List enumMemberDecl() {
- return getRuleContexts(EnumMemberDeclContext.class);
- }
- public EnumMemberDeclContext enumMemberDecl(int i) {
- return getRuleContext(EnumMemberDeclContext.class,i);
- }
- public TerminalNode CLOSE_BRACK() { return getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0); }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public EnumTypeExtensionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_enumTypeExtension; }
- }
-
- public final EnumTypeExtensionContext enumTypeExtension() throws RecognitionException {
- EnumTypeExtensionContext _localctx = new EnumTypeExtensionContext(_ctx, getState());
- enterRule(_localctx, 76, RULE_enumTypeExtension);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(594);
- match(T__19);
- setState(595);
- enumName();
- setState(596);
- match(T__8);
- setState(597);
- match(OPEN_BRACK);
- setState(598);
- enumMemberDecl();
- setState(603);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(599);
- match(T__7);
- setState(600);
- enumMemberDecl();
- }
- }
- setState(605);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- setState(606);
- match(CLOSE_BRACK);
- setState(607);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class StructuredTypeExtensionContext extends ParserRuleContext {
- public ExtendableTypeNameContext extendableTypeName() {
- return getRuleContext(ExtendableTypeNameContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public List extensionMemberDecl() {
- return getRuleContexts(ExtensionMemberDeclContext.class);
- }
- public ExtensionMemberDeclContext extensionMemberDecl(int i) {
- return getRuleContext(ExtensionMemberDeclContext.class,i);
- }
- public StructuredTypeExtensionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_structuredTypeExtension; }
- }
-
- public final StructuredTypeExtensionContext structuredTypeExtension() throws RecognitionException {
- StructuredTypeExtensionContext _localctx = new StructuredTypeExtensionContext(_ctx, getState());
- enterRule(_localctx, 78, RULE_structuredTypeExtension);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(609);
- match(T__19);
- setState(610);
- extendableTypeName();
- setState(611);
- match(T__8);
- setState(612);
- match(NEWLINE);
- setState(613);
- match(INDENT);
- setState(615);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(614);
- extensionMemberDecl();
- }
- }
- setState(617);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__27) | (1L << T__35) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__51) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (T__64 - 65)) | (1L << (T__72 - 65)) | (1L << (T__76 - 65)) | (1L << (OPEN_BRACK - 65)) | (1L << (OPEN_PAREN - 65)) | (1L << (StringLiteral - 65)) | (1L << (FloatLiteral - 65)) | (1L << (UintLiteral - 65)) | (1L << (HexUintLiteral - 65)) | (1L << (IntLiteral - 65)) | (1L << (BoolLiteral - 65)) | (1L << (Identifier - 65)))) != 0) );
- setState(619);
- match(DEDENT);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ExtendableTypeNameContext extends ParserRuleContext {
- public TypeNameContext typeName() {
- return getRuleContext(TypeNameContext.class,0);
- }
- public QualifiedBehaviorNameContext qualifiedBehaviorName() {
- return getRuleContext(QualifiedBehaviorNameContext.class,0);
- }
- public ExtendableTypeNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_extendableTypeName; }
- }
-
- public final ExtendableTypeNameContext extendableTypeName() throws RecognitionException {
- ExtendableTypeNameContext _localctx = new ExtendableTypeNameContext(_ctx, getState());
- enterRule(_localctx, 80, RULE_extendableTypeName);
- try {
- setState(623);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(621);
- typeName();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(622);
- qualifiedBehaviorName();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ExtensionMemberDeclContext extends ParserRuleContext {
- public StructMemberDeclContext structMemberDecl() {
- return getRuleContext(StructMemberDeclContext.class,0);
- }
- public ActorMemberDeclContext actorMemberDecl() {
- return getRuleContext(ActorMemberDeclContext.class,0);
- }
- public ScenarioMemberDeclContext scenarioMemberDecl() {
- return getRuleContext(ScenarioMemberDeclContext.class,0);
- }
- public BehaviorSpecificationContext behaviorSpecification() {
- return getRuleContext(BehaviorSpecificationContext.class,0);
- }
- public ExtensionMemberDeclContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_extensionMemberDecl; }
- }
-
- public final ExtensionMemberDeclContext extensionMemberDecl() throws RecognitionException {
- ExtensionMemberDeclContext _localctx = new ExtensionMemberDeclContext(_ctx, getState());
- enterRule(_localctx, 82, RULE_extensionMemberDecl);
- try {
- setState(629);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,48,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(625);
- structMemberDecl();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(626);
- actorMemberDecl();
- }
- break;
- case 3:
- enterOuterAlt(_localctx, 3);
- {
- setState(627);
- scenarioMemberDecl();
- }
- break;
- case 4:
- enterOuterAlt(_localctx, 4);
- {
- setState(628);
- behaviorSpecification();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class GlobalParameterDeclarationContext extends ParserRuleContext {
- public ParameterDeclarationContext parameterDeclaration() {
- return getRuleContext(ParameterDeclarationContext.class,0);
- }
- public GlobalParameterDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_globalParameterDeclaration; }
- }
-
- public final GlobalParameterDeclarationContext globalParameterDeclaration() throws RecognitionException {
- GlobalParameterDeclarationContext _localctx = new GlobalParameterDeclarationContext(_ctx, getState());
- enterRule(_localctx, 84, RULE_globalParameterDeclaration);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(631);
- match(T__20);
- setState(632);
- parameterDeclaration();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class TypeDeclaratorContext extends ParserRuleContext {
- public NonAggregateTypeDeclaratorContext nonAggregateTypeDeclarator() {
- return getRuleContext(NonAggregateTypeDeclaratorContext.class,0);
- }
- public AggregateTypeDeclaratorContext aggregateTypeDeclarator() {
- return getRuleContext(AggregateTypeDeclaratorContext.class,0);
- }
- public TypeDeclaratorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_typeDeclarator; }
- }
-
- public final TypeDeclaratorContext typeDeclarator() throws RecognitionException {
- TypeDeclaratorContext _localctx = new TypeDeclaratorContext(_ctx, getState());
- enterRule(_localctx, 86, RULE_typeDeclarator);
- try {
- setState(636);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__22:
- case T__23:
- case T__24:
- case T__25:
- case T__26:
- case Identifier:
- enterOuterAlt(_localctx, 1);
- {
- setState(634);
- nonAggregateTypeDeclarator();
- }
- break;
- case T__21:
- enterOuterAlt(_localctx, 2);
- {
- setState(635);
- aggregateTypeDeclarator();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class NonAggregateTypeDeclaratorContext extends ParserRuleContext {
- public PrimitiveTypeContext primitiveType() {
- return getRuleContext(PrimitiveTypeContext.class,0);
- }
- public TypeNameContext typeName() {
- return getRuleContext(TypeNameContext.class,0);
- }
- public QualifiedBehaviorNameContext qualifiedBehaviorName() {
- return getRuleContext(QualifiedBehaviorNameContext.class,0);
- }
- public NonAggregateTypeDeclaratorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_nonAggregateTypeDeclarator; }
- }
-
- public final NonAggregateTypeDeclaratorContext nonAggregateTypeDeclarator() throws RecognitionException {
- NonAggregateTypeDeclaratorContext _localctx = new NonAggregateTypeDeclaratorContext(_ctx, getState());
- enterRule(_localctx, 88, RULE_nonAggregateTypeDeclarator);
- try {
- setState(641);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,50,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(638);
- primitiveType();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(639);
- typeName();
- }
- break;
- case 3:
- enterOuterAlt(_localctx, 3);
- {
- setState(640);
- qualifiedBehaviorName();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class AggregateTypeDeclaratorContext extends ParserRuleContext {
- public ListTypeDeclaratorContext listTypeDeclarator() {
- return getRuleContext(ListTypeDeclaratorContext.class,0);
- }
- public AggregateTypeDeclaratorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_aggregateTypeDeclarator; }
- }
-
- public final AggregateTypeDeclaratorContext aggregateTypeDeclarator() throws RecognitionException {
- AggregateTypeDeclaratorContext _localctx = new AggregateTypeDeclaratorContext(_ctx, getState());
- enterRule(_localctx, 90, RULE_aggregateTypeDeclarator);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(643);
- listTypeDeclarator();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ListTypeDeclaratorContext extends ParserRuleContext {
- public NonAggregateTypeDeclaratorContext nonAggregateTypeDeclarator() {
- return getRuleContext(NonAggregateTypeDeclaratorContext.class,0);
- }
- public ListTypeDeclaratorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_listTypeDeclarator; }
- }
-
- public final ListTypeDeclaratorContext listTypeDeclarator() throws RecognitionException {
- ListTypeDeclaratorContext _localctx = new ListTypeDeclaratorContext(_ctx, getState());
- enterRule(_localctx, 92, RULE_listTypeDeclarator);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(645);
- match(T__21);
- setState(646);
- match(T__6);
- setState(647);
- nonAggregateTypeDeclarator();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PrimitiveTypeContext extends ParserRuleContext {
- public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_primitiveType; }
- }
-
- public final PrimitiveTypeContext primitiveType() throws RecognitionException {
- PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
- enterRule(_localctx, 94, RULE_primitiveType);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(649);
- _la = _input.LA(1);
- if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26))) != 0)) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class TypeNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public TypeNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_typeName; }
- }
-
- public final TypeNameContext typeName() throws RecognitionException {
- TypeNameContext _localctx = new TypeNameContext(_ctx, getState());
- enterRule(_localctx, 96, RULE_typeName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(651);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventDeclarationContext extends ParserRuleContext {
- public EventNameContext eventName() {
- return getRuleContext(EventNameContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public ArgumentListSpecificationContext argumentListSpecification() {
- return getRuleContext(ArgumentListSpecificationContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public EventSpecificationContext eventSpecification() {
- return getRuleContext(EventSpecificationContext.class,0);
- }
- public EventDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventDeclaration; }
- }
-
- public final EventDeclarationContext eventDeclaration() throws RecognitionException {
- EventDeclarationContext _localctx = new EventDeclarationContext(_ctx, getState());
- enterRule(_localctx, 98, RULE_eventDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(653);
- match(T__27);
- setState(654);
- eventName();
- setState(659);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(655);
- match(OPEN_PAREN);
- setState(656);
- argumentListSpecification();
- setState(657);
- match(CLOSE_PAREN);
- }
- }
-
- setState(663);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__3) {
- {
- setState(661);
- match(T__3);
- setState(662);
- eventSpecification();
- }
- }
-
- setState(665);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventSpecificationContext extends ParserRuleContext {
- public EventReferenceContext eventReference() {
- return getRuleContext(EventReferenceContext.class,0);
- }
- public EventConditionContext eventCondition() {
- return getRuleContext(EventConditionContext.class,0);
- }
- public EventFieldDeclContext eventFieldDecl() {
- return getRuleContext(EventFieldDeclContext.class,0);
- }
- public EventSpecificationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventSpecification; }
- }
-
- public final EventSpecificationContext eventSpecification() throws RecognitionException {
- EventSpecificationContext _localctx = new EventSpecificationContext(_ctx, getState());
- enterRule(_localctx, 100, RULE_eventSpecification);
- int _la;
- try {
- setState(676);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__29:
- enterOuterAlt(_localctx, 1);
- {
- setState(667);
- eventReference();
- setState(673);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__28 || _la==T__30) {
- {
- setState(669);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__30) {
- {
- setState(668);
- eventFieldDecl();
- }
- }
-
- setState(671);
- match(T__28);
- setState(672);
- eventCondition();
- }
- }
-
- }
- break;
- case T__31:
- case T__32:
- case T__33:
- case T__34:
- case T__59:
- case T__64:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- enterOuterAlt(_localctx, 2);
- {
- setState(675);
- eventCondition();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventReferenceContext extends ParserRuleContext {
- public EventPathContext eventPath() {
- return getRuleContext(EventPathContext.class,0);
- }
- public EventReferenceContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventReference; }
- }
-
- public final EventReferenceContext eventReference() throws RecognitionException {
- EventReferenceContext _localctx = new EventReferenceContext(_ctx, getState());
- enterRule(_localctx, 102, RULE_eventReference);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(678);
- match(T__29);
- setState(679);
- eventPath();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventFieldDeclContext extends ParserRuleContext {
- public EventFieldNameContext eventFieldName() {
- return getRuleContext(EventFieldNameContext.class,0);
- }
- public EventFieldDeclContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventFieldDecl; }
- }
-
- public final EventFieldDeclContext eventFieldDecl() throws RecognitionException {
- EventFieldDeclContext _localctx = new EventFieldDeclContext(_ctx, getState());
- enterRule(_localctx, 104, RULE_eventFieldDecl);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(681);
- match(T__30);
- setState(682);
- eventFieldName();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventFieldNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public EventFieldNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventFieldName; }
- }
-
- public final EventFieldNameContext eventFieldName() throws RecognitionException {
- EventFieldNameContext _localctx = new EventFieldNameContext(_ctx, getState());
- enterRule(_localctx, 106, RULE_eventFieldName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(684);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public EventNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventName; }
- }
-
- public final EventNameContext eventName() throws RecognitionException {
- EventNameContext _localctx = new EventNameContext(_ctx, getState());
- enterRule(_localctx, 108, RULE_eventName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(686);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventPathContext extends ParserRuleContext {
- public EventNameContext eventName() {
- return getRuleContext(EventNameContext.class,0);
- }
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public EventPathContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventPath; }
- }
-
- public final EventPathContext eventPath() throws RecognitionException {
- EventPathContext _localctx = new EventPathContext(_ctx, getState());
- enterRule(_localctx, 110, RULE_eventPath);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(691);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) {
- case 1:
- {
- setState(688);
- expression();
- setState(689);
- match(T__1);
- }
- break;
- }
- setState(693);
- eventName();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EventConditionContext extends ParserRuleContext {
- public BoolExpressionContext boolExpression() {
- return getRuleContext(BoolExpressionContext.class,0);
- }
- public RiseExpressionContext riseExpression() {
- return getRuleContext(RiseExpressionContext.class,0);
- }
- public FallExpressionContext fallExpression() {
- return getRuleContext(FallExpressionContext.class,0);
- }
- public ElapsedExpressionContext elapsedExpression() {
- return getRuleContext(ElapsedExpressionContext.class,0);
- }
- public EveryExpressionContext everyExpression() {
- return getRuleContext(EveryExpressionContext.class,0);
- }
- public EventConditionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_eventCondition; }
- }
-
- public final EventConditionContext eventCondition() throws RecognitionException {
- EventConditionContext _localctx = new EventConditionContext(_ctx, getState());
- enterRule(_localctx, 112, RULE_eventCondition);
- try {
- setState(700);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__59:
- case T__64:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- enterOuterAlt(_localctx, 1);
- {
- setState(695);
- boolExpression();
- }
- break;
- case T__31:
- enterOuterAlt(_localctx, 2);
- {
- setState(696);
- riseExpression();
- }
- break;
- case T__32:
- enterOuterAlt(_localctx, 3);
- {
- setState(697);
- fallExpression();
- }
- break;
- case T__33:
- enterOuterAlt(_localctx, 4);
- {
- setState(698);
- elapsedExpression();
- }
- break;
- case T__34:
- enterOuterAlt(_localctx, 5);
- {
- setState(699);
- everyExpression();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class RiseExpressionContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public BoolExpressionContext boolExpression() {
- return getRuleContext(BoolExpressionContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public RiseExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_riseExpression; }
- }
-
- public final RiseExpressionContext riseExpression() throws RecognitionException {
- RiseExpressionContext _localctx = new RiseExpressionContext(_ctx, getState());
- enterRule(_localctx, 114, RULE_riseExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(702);
- match(T__31);
- setState(703);
- match(OPEN_PAREN);
- setState(704);
- boolExpression();
- setState(705);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class FallExpressionContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public BoolExpressionContext boolExpression() {
- return getRuleContext(BoolExpressionContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public FallExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_fallExpression; }
- }
-
- public final FallExpressionContext fallExpression() throws RecognitionException {
- FallExpressionContext _localctx = new FallExpressionContext(_ctx, getState());
- enterRule(_localctx, 116, RULE_fallExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(707);
- match(T__32);
- setState(708);
- match(OPEN_PAREN);
- setState(709);
- boolExpression();
- setState(710);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ElapsedExpressionContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public DurationExpressionContext durationExpression() {
- return getRuleContext(DurationExpressionContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public ElapsedExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_elapsedExpression; }
- }
-
- public final ElapsedExpressionContext elapsedExpression() throws RecognitionException {
- ElapsedExpressionContext _localctx = new ElapsedExpressionContext(_ctx, getState());
- enterRule(_localctx, 118, RULE_elapsedExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(712);
- match(T__33);
- setState(713);
- match(OPEN_PAREN);
- setState(714);
- durationExpression();
- setState(715);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EveryExpressionContext extends ParserRuleContext {
- public Token Identifier;
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public List durationExpression() {
- return getRuleContexts(DurationExpressionContext.class);
- }
- public DurationExpressionContext durationExpression(int i) {
- return getRuleContext(DurationExpressionContext.class,i);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public EveryExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_everyExpression; }
- }
-
- public final EveryExpressionContext everyExpression() throws RecognitionException {
- EveryExpressionContext _localctx = new EveryExpressionContext(_ctx, getState());
- enterRule(_localctx, 120, RULE_everyExpression);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(717);
- match(T__34);
- setState(718);
- match(OPEN_PAREN);
- setState(719);
- durationExpression();
- setState(725);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__7) {
- {
- setState(720);
- match(T__7);
- setState(721);
- ((EveryExpressionContext)_localctx).Identifier = match(Identifier);
-
- offsetName = (((EveryExpressionContext)_localctx).Identifier!=null?((EveryExpressionContext)_localctx).Identifier.getText():null);
- if( not (offsetName == "offset") ):
- raise NoViableAltException(self)
-
- setState(723);
- match(T__8);
- setState(724);
- durationExpression();
- }
- }
-
- setState(727);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BoolExpressionContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public BoolExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_boolExpression; }
- }
-
- public final BoolExpressionContext boolExpression() throws RecognitionException {
- BoolExpressionContext _localctx = new BoolExpressionContext(_ctx, getState());
- enterRule(_localctx, 122, RULE_boolExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(729);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class DurationExpressionContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public DurationExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_durationExpression; }
- }
-
- public final DurationExpressionContext durationExpression() throws RecognitionException {
- DurationExpressionContext _localctx = new DurationExpressionContext(_ctx, getState());
- enterRule(_localctx, 124, RULE_durationExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(731);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class FieldDeclarationContext extends ParserRuleContext {
- public ParameterDeclarationContext parameterDeclaration() {
- return getRuleContext(ParameterDeclarationContext.class,0);
- }
- public VariableDeclarationContext variableDeclaration() {
- return getRuleContext(VariableDeclarationContext.class,0);
- }
- public FieldDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_fieldDeclaration; }
- }
-
- public final FieldDeclarationContext fieldDeclaration() throws RecognitionException {
- FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState());
- enterRule(_localctx, 126, RULE_fieldDeclaration);
- try {
- setState(735);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case Identifier:
- enterOuterAlt(_localctx, 1);
- {
- setState(733);
- parameterDeclaration();
- }
- break;
- case T__35:
- enterOuterAlt(_localctx, 2);
- {
- setState(734);
- variableDeclaration();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ParameterDeclarationContext extends ParserRuleContext {
- public List fieldName() {
- return getRuleContexts(FieldNameContext.class);
- }
- public FieldNameContext fieldName(int i) {
- return getRuleContext(FieldNameContext.class,i);
- }
- public TypeDeclaratorContext typeDeclarator() {
- return getRuleContext(TypeDeclaratorContext.class,0);
- }
- public ParameterWithDeclarationContext parameterWithDeclaration() {
- return getRuleContext(ParameterWithDeclarationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public DefaultValueContext defaultValue() {
- return getRuleContext(DefaultValueContext.class,0);
- }
- public ParameterDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_parameterDeclaration; }
- }
-
- public final ParameterDeclarationContext parameterDeclaration() throws RecognitionException {
- ParameterDeclarationContext _localctx = new ParameterDeclarationContext(_ctx, getState());
- enterRule(_localctx, 128, RULE_parameterDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(737);
- fieldName();
- setState(742);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(738);
- match(T__7);
- setState(739);
- fieldName();
- }
- }
- setState(744);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- setState(745);
- match(T__8);
- setState(746);
- typeDeclarator();
- setState(749);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__10) {
- {
- setState(747);
- match(T__10);
- setState(748);
- defaultValue();
- }
- }
-
- setState(753);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__37:
- {
- setState(751);
- parameterWithDeclaration();
- }
- break;
- case NEWLINE:
- {
- setState(752);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class VariableDeclarationContext extends ParserRuleContext {
- public List fieldName() {
- return getRuleContexts(FieldNameContext.class);
- }
- public FieldNameContext fieldName(int i) {
- return getRuleContext(FieldNameContext.class,i);
- }
- public TypeDeclaratorContext typeDeclarator() {
- return getRuleContext(TypeDeclaratorContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public SampleExpressionContext sampleExpression() {
- return getRuleContext(SampleExpressionContext.class,0);
- }
- public ValueExpContext valueExp() {
- return getRuleContext(ValueExpContext.class,0);
- }
- public VariableDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_variableDeclaration; }
- }
-
- public final VariableDeclarationContext variableDeclaration() throws RecognitionException {
- VariableDeclarationContext _localctx = new VariableDeclarationContext(_ctx, getState());
- enterRule(_localctx, 130, RULE_variableDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(755);
- match(T__35);
- setState(756);
- fieldName();
- setState(761);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(757);
- match(T__7);
- setState(758);
- fieldName();
- }
- }
- setState(763);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- setState(764);
- match(T__8);
- setState(765);
- typeDeclarator();
- setState(771);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__10) {
- {
- setState(766);
- match(T__10);
- setState(769);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__36:
- {
- setState(767);
- sampleExpression();
- }
- break;
- case T__59:
- case OPEN_BRACK:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- {
- setState(768);
- valueExp();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
-
- setState(773);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SampleExpressionContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public EventSpecificationContext eventSpecification() {
- return getRuleContext(EventSpecificationContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public DefaultValueContext defaultValue() {
- return getRuleContext(DefaultValueContext.class,0);
- }
- public SampleExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sampleExpression; }
- }
-
- public final SampleExpressionContext sampleExpression() throws RecognitionException {
- SampleExpressionContext _localctx = new SampleExpressionContext(_ctx, getState());
- enterRule(_localctx, 132, RULE_sampleExpression);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(775);
- match(T__36);
- setState(776);
- match(OPEN_PAREN);
- setState(777);
- expression();
- setState(778);
- match(T__7);
- setState(779);
- eventSpecification();
- setState(782);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__7) {
- {
- setState(780);
- match(T__7);
- setState(781);
- defaultValue();
- }
- }
-
- setState(784);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class DefaultValueContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public DefaultValueContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_defaultValue; }
- }
-
- public final DefaultValueContext defaultValue() throws RecognitionException {
- DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState());
- enterRule(_localctx, 134, RULE_defaultValue);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(786);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ParameterWithDeclarationContext extends ParserRuleContext {
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public List parameterWithMember() {
- return getRuleContexts(ParameterWithMemberContext.class);
- }
- public ParameterWithMemberContext parameterWithMember(int i) {
- return getRuleContext(ParameterWithMemberContext.class,i);
- }
- public ParameterWithDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_parameterWithDeclaration; }
- }
-
- public final ParameterWithDeclarationContext parameterWithDeclaration() throws RecognitionException {
- ParameterWithDeclarationContext _localctx = new ParameterWithDeclarationContext(_ctx, getState());
- enterRule(_localctx, 136, RULE_parameterWithDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(788);
- match(T__37);
- setState(789);
- match(T__8);
- setState(790);
- match(NEWLINE);
- setState(791);
- match(INDENT);
- setState(793);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(792);
- parameterWithMember();
- }
- }
- setState(795);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__38) | (1L << T__41) | (1L << T__57) | (1L << T__58))) != 0) );
- setState(797);
- match(DEDENT);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ParameterWithMemberContext extends ParserRuleContext {
- public ConstraintDeclarationContext constraintDeclaration() {
- return getRuleContext(ConstraintDeclarationContext.class,0);
- }
- public CoverageDeclarationContext coverageDeclaration() {
- return getRuleContext(CoverageDeclarationContext.class,0);
- }
- public ParameterWithMemberContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_parameterWithMember; }
- }
-
- public final ParameterWithMemberContext parameterWithMember() throws RecognitionException {
- ParameterWithMemberContext _localctx = new ParameterWithMemberContext(_ctx, getState());
- enterRule(_localctx, 138, RULE_parameterWithMember);
- try {
- setState(801);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__38:
- case T__41:
- enterOuterAlt(_localctx, 1);
- {
- setState(799);
- constraintDeclaration();
- }
- break;
- case T__57:
- case T__58:
- enterOuterAlt(_localctx, 2);
- {
- setState(800);
- coverageDeclaration();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ConstraintDeclarationContext extends ParserRuleContext {
- public KeepConstraintDeclarationContext keepConstraintDeclaration() {
- return getRuleContext(KeepConstraintDeclarationContext.class,0);
- }
- public RemoveDefaultDeclarationContext removeDefaultDeclaration() {
- return getRuleContext(RemoveDefaultDeclarationContext.class,0);
- }
- public ConstraintDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_constraintDeclaration; }
- }
-
- public final ConstraintDeclarationContext constraintDeclaration() throws RecognitionException {
- ConstraintDeclarationContext _localctx = new ConstraintDeclarationContext(_ctx, getState());
- enterRule(_localctx, 140, RULE_constraintDeclaration);
- try {
- setState(805);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__38:
- enterOuterAlt(_localctx, 1);
- {
- setState(803);
- keepConstraintDeclaration();
- }
- break;
- case T__41:
- enterOuterAlt(_localctx, 2);
- {
- setState(804);
- removeDefaultDeclaration();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class KeepConstraintDeclarationContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public ConstraintExpressionContext constraintExpression() {
- return getRuleContext(ConstraintExpressionContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public ConstraintQualifierContext constraintQualifier() {
- return getRuleContext(ConstraintQualifierContext.class,0);
- }
- public KeepConstraintDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_keepConstraintDeclaration; }
- }
-
- public final KeepConstraintDeclarationContext keepConstraintDeclaration() throws RecognitionException {
- KeepConstraintDeclarationContext _localctx = new KeepConstraintDeclarationContext(_ctx, getState());
- enterRule(_localctx, 142, RULE_keepConstraintDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(807);
- match(T__38);
- setState(808);
- match(OPEN_PAREN);
- setState(810);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__39 || _la==T__40) {
- {
- setState(809);
- constraintQualifier();
- }
- }
-
- setState(812);
- constraintExpression();
- setState(813);
- match(CLOSE_PAREN);
- setState(814);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ConstraintQualifierContext extends ParserRuleContext {
- public ConstraintQualifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_constraintQualifier; }
- }
-
- public final ConstraintQualifierContext constraintQualifier() throws RecognitionException {
- ConstraintQualifierContext _localctx = new ConstraintQualifierContext(_ctx, getState());
- enterRule(_localctx, 144, RULE_constraintQualifier);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(816);
- _la = _input.LA(1);
- if ( !(_la==T__39 || _la==T__40) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ConstraintExpressionContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public ConstraintExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_constraintExpression; }
- }
-
- public final ConstraintExpressionContext constraintExpression() throws RecognitionException {
- ConstraintExpressionContext _localctx = new ConstraintExpressionContext(_ctx, getState());
- enterRule(_localctx, 146, RULE_constraintExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(818);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class RemoveDefaultDeclarationContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public ParameterReferenceContext parameterReference() {
- return getRuleContext(ParameterReferenceContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public RemoveDefaultDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_removeDefaultDeclaration; }
- }
-
- public final RemoveDefaultDeclarationContext removeDefaultDeclaration() throws RecognitionException {
- RemoveDefaultDeclarationContext _localctx = new RemoveDefaultDeclarationContext(_ctx, getState());
- enterRule(_localctx, 148, RULE_removeDefaultDeclaration);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(820);
- match(T__41);
- setState(821);
- match(OPEN_PAREN);
- setState(822);
- parameterReference();
- setState(823);
- match(CLOSE_PAREN);
- setState(824);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ParameterReferenceContext extends ParserRuleContext {
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public FieldAccessContext fieldAccess() {
- return getRuleContext(FieldAccessContext.class,0);
- }
- public ParameterReferenceContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_parameterReference; }
- }
-
- public final ParameterReferenceContext parameterReference() throws RecognitionException {
- ParameterReferenceContext _localctx = new ParameterReferenceContext(_ctx, getState());
- enterRule(_localctx, 150, RULE_parameterReference);
- try {
- setState(828);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(826);
- fieldName();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(827);
- fieldAccess();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ModifierInvocationContext extends ParserRuleContext {
- public ModifierNameContext modifierName() {
- return getRuleContext(ModifierNameContext.class,0);
- }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public BehaviorExpressionContext behaviorExpression() {
- return getRuleContext(BehaviorExpressionContext.class,0);
- }
- public ActorExpressionContext actorExpression() {
- return getRuleContext(ActorExpressionContext.class,0);
- }
- public ModifierInvocationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_modifierInvocation; }
- }
-
- public final ModifierInvocationContext modifierInvocation() throws RecognitionException {
- ModifierInvocationContext _localctx = new ModifierInvocationContext(_ctx, getState());
- enterRule(_localctx, 152, RULE_modifierInvocation);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(836);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,73,_ctx) ) {
- case 1:
- {
- setState(832);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,72,_ctx) ) {
- case 1:
- {
- setState(830);
- behaviorExpression();
- }
- break;
- case 2:
- {
- setState(831);
- actorExpression();
- }
- break;
- }
- setState(834);
- match(T__1);
- }
- break;
- }
- setState(838);
- modifierName();
- setState(839);
- match(OPEN_PAREN);
- setState(841);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (T__59 - 60)) | (1L << (T__64 - 60)) | (1L << (T__72 - 60)) | (1L << (T__76 - 60)) | (1L << (OPEN_BRACK - 60)) | (1L << (OPEN_PAREN - 60)) | (1L << (StringLiteral - 60)) | (1L << (FloatLiteral - 60)) | (1L << (UintLiteral - 60)) | (1L << (HexUintLiteral - 60)) | (1L << (IntLiteral - 60)) | (1L << (BoolLiteral - 60)) | (1L << (Identifier - 60)))) != 0)) {
- {
- setState(840);
- argumentList();
- }
- }
-
- setState(843);
- match(CLOSE_PAREN);
- setState(844);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BehaviorExpressionContext extends ParserRuleContext {
- public BehaviorNameContext behaviorName() {
- return getRuleContext(BehaviorNameContext.class,0);
- }
- public ActorExpressionContext actorExpression() {
- return getRuleContext(ActorExpressionContext.class,0);
- }
- public BehaviorExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_behaviorExpression; }
- }
-
- public final BehaviorExpressionContext behaviorExpression() throws RecognitionException {
- BehaviorExpressionContext _localctx = new BehaviorExpressionContext(_ctx, getState());
- enterRule(_localctx, 154, RULE_behaviorExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- {
- setState(846);
- actorExpression();
- setState(847);
- match(T__1);
- }
- setState(849);
- behaviorName();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BehaviorSpecificationContext extends ParserRuleContext {
- public OnDirectiveContext onDirective() {
- return getRuleContext(OnDirectiveContext.class,0);
- }
- public DoDirectiveContext doDirective() {
- return getRuleContext(DoDirectiveContext.class,0);
- }
- public BehaviorSpecificationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_behaviorSpecification; }
- }
-
- public final BehaviorSpecificationContext behaviorSpecification() throws RecognitionException {
- BehaviorSpecificationContext _localctx = new BehaviorSpecificationContext(_ctx, getState());
- enterRule(_localctx, 156, RULE_behaviorSpecification);
- try {
- setState(853);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__42:
- enterOuterAlt(_localctx, 1);
- {
- setState(851);
- onDirective();
- }
- break;
- case T__43:
- enterOuterAlt(_localctx, 2);
- {
- setState(852);
- doDirective();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class OnDirectiveContext extends ParserRuleContext {
- public EventSpecificationContext eventSpecification() {
- return getRuleContext(EventSpecificationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public List onMember() {
- return getRuleContexts(OnMemberContext.class);
- }
- public OnMemberContext onMember(int i) {
- return getRuleContext(OnMemberContext.class,i);
- }
- public OnDirectiveContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_onDirective; }
- }
-
- public final OnDirectiveContext onDirective() throws RecognitionException {
- OnDirectiveContext _localctx = new OnDirectiveContext(_ctx, getState());
- enterRule(_localctx, 158, RULE_onDirective);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(855);
- match(T__42);
- setState(856);
- eventSpecification();
- setState(857);
- match(T__8);
- setState(858);
- match(NEWLINE);
- setState(859);
- match(INDENT);
- setState(861);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(860);
- onMember();
- }
- }
- setState(863);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( _la==T__48 || _la==T__49 );
- setState(865);
- match(DEDENT);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class OnMemberContext extends ParserRuleContext {
- public CallDirectiveContext callDirective() {
- return getRuleContext(CallDirectiveContext.class,0);
- }
- public EmitDirectiveContext emitDirective() {
- return getRuleContext(EmitDirectiveContext.class,0);
- }
- public OnMemberContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_onMember; }
- }
-
- public final OnMemberContext onMember() throws RecognitionException {
- OnMemberContext _localctx = new OnMemberContext(_ctx, getState());
- enterRule(_localctx, 160, RULE_onMember);
- try {
- setState(869);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__49:
- enterOuterAlt(_localctx, 1);
- {
- setState(867);
- callDirective();
- }
- break;
- case T__48:
- enterOuterAlt(_localctx, 2);
- {
- setState(868);
- emitDirective();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class DoDirectiveContext extends ParserRuleContext {
- public DoMemberContext doMember() {
- return getRuleContext(DoMemberContext.class,0);
- }
- public DoDirectiveContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_doDirective; }
- }
-
- public final DoDirectiveContext doDirective() throws RecognitionException {
- DoDirectiveContext _localctx = new DoDirectiveContext(_ctx, getState());
- enterRule(_localctx, 162, RULE_doDirective);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(871);
- match(T__43);
- setState(872);
- doMember();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class DoMemberContext extends ParserRuleContext {
- public CompositionContext composition() {
- return getRuleContext(CompositionContext.class,0);
- }
- public BehaviorInvocationContext behaviorInvocation() {
- return getRuleContext(BehaviorInvocationContext.class,0);
- }
- public WaitDirectiveContext waitDirective() {
- return getRuleContext(WaitDirectiveContext.class,0);
- }
- public EmitDirectiveContext emitDirective() {
- return getRuleContext(EmitDirectiveContext.class,0);
- }
- public CallDirectiveContext callDirective() {
- return getRuleContext(CallDirectiveContext.class,0);
- }
- public LabelNameContext labelName() {
- return getRuleContext(LabelNameContext.class,0);
- }
- public DoMemberContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_doMember; }
- }
-
- public final DoMemberContext doMember() throws RecognitionException {
- DoMemberContext _localctx = new DoMemberContext(_ctx, getState());
- enterRule(_localctx, 164, RULE_doMember);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(877);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,78,_ctx) ) {
- case 1:
- {
- setState(874);
- labelName();
- setState(875);
- match(T__8);
- }
- break;
- }
- setState(884);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__44:
- case T__45:
- case T__46:
- {
- setState(879);
- composition();
- }
- break;
- case T__59:
- case T__64:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- {
- setState(880);
- behaviorInvocation();
- }
- break;
- case T__47:
- {
- setState(881);
- waitDirective();
- }
- break;
- case T__48:
- {
- setState(882);
- emitDirective();
- }
- break;
- case T__49:
- {
- setState(883);
- callDirective();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class CompositionContext extends ParserRuleContext {
- public CompositionOperatorContext compositionOperator() {
- return getRuleContext(CompositionOperatorContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public List doMember() {
- return getRuleContexts(DoMemberContext.class);
- }
- public DoMemberContext doMember(int i) {
- return getRuleContext(DoMemberContext.class,i);
- }
- public BehaviorWithDeclarationContext behaviorWithDeclaration() {
- return getRuleContext(BehaviorWithDeclarationContext.class,0);
- }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public CompositionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_composition; }
- }
-
- public final CompositionContext composition() throws RecognitionException {
- CompositionContext _localctx = new CompositionContext(_ctx, getState());
- enterRule(_localctx, 166, RULE_composition);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(886);
- compositionOperator();
- setState(892);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(887);
- match(OPEN_PAREN);
- setState(889);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (T__59 - 60)) | (1L << (T__64 - 60)) | (1L << (T__72 - 60)) | (1L << (T__76 - 60)) | (1L << (OPEN_BRACK - 60)) | (1L << (OPEN_PAREN - 60)) | (1L << (StringLiteral - 60)) | (1L << (FloatLiteral - 60)) | (1L << (UintLiteral - 60)) | (1L << (HexUintLiteral - 60)) | (1L << (IntLiteral - 60)) | (1L << (BoolLiteral - 60)) | (1L << (Identifier - 60)))) != 0)) {
- {
- setState(888);
- argumentList();
- }
- }
-
- setState(891);
- match(CLOSE_PAREN);
- }
- }
-
- setState(894);
- match(T__8);
- setState(895);
- match(NEWLINE);
- setState(896);
- match(INDENT);
- setState(898);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(897);
- doMember();
- }
- }
- setState(900);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( ((((_la - 45)) & ~0x3f) == 0 && ((1L << (_la - 45)) & ((1L << (T__44 - 45)) | (1L << (T__45 - 45)) | (1L << (T__46 - 45)) | (1L << (T__47 - 45)) | (1L << (T__48 - 45)) | (1L << (T__49 - 45)) | (1L << (T__59 - 45)) | (1L << (T__64 - 45)) | (1L << (T__72 - 45)) | (1L << (T__76 - 45)) | (1L << (OPEN_BRACK - 45)) | (1L << (OPEN_PAREN - 45)) | (1L << (StringLiteral - 45)) | (1L << (FloatLiteral - 45)) | (1L << (UintLiteral - 45)) | (1L << (HexUintLiteral - 45)) | (1L << (IntLiteral - 45)) | (1L << (BoolLiteral - 45)) | (1L << (Identifier - 45)))) != 0) );
- setState(902);
- match(DEDENT);
- setState(904);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__37) {
- {
- setState(903);
- behaviorWithDeclaration();
- }
- }
-
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class CompositionOperatorContext extends ParserRuleContext {
- public CompositionOperatorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_compositionOperator; }
- }
-
- public final CompositionOperatorContext compositionOperator() throws RecognitionException {
- CompositionOperatorContext _localctx = new CompositionOperatorContext(_ctx, getState());
- enterRule(_localctx, 168, RULE_compositionOperator);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(906);
- _la = _input.LA(1);
- if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__44) | (1L << T__45) | (1L << T__46))) != 0)) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BehaviorInvocationContext extends ParserRuleContext {
- public BehaviorNameContext behaviorName() {
- return getRuleContext(BehaviorNameContext.class,0);
- }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public BehaviorWithDeclarationContext behaviorWithDeclaration() {
- return getRuleContext(BehaviorWithDeclarationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public ActorExpressionContext actorExpression() {
- return getRuleContext(ActorExpressionContext.class,0);
- }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public BehaviorInvocationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_behaviorInvocation; }
- }
-
- public final BehaviorInvocationContext behaviorInvocation() throws RecognitionException {
- BehaviorInvocationContext _localctx = new BehaviorInvocationContext(_ctx, getState());
- enterRule(_localctx, 170, RULE_behaviorInvocation);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(911);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,84,_ctx) ) {
- case 1:
- {
- setState(908);
- actorExpression();
- setState(909);
- match(T__1);
- }
- break;
- }
- setState(913);
- behaviorName();
- setState(914);
- match(OPEN_PAREN);
- setState(916);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (T__59 - 60)) | (1L << (T__64 - 60)) | (1L << (T__72 - 60)) | (1L << (T__76 - 60)) | (1L << (OPEN_BRACK - 60)) | (1L << (OPEN_PAREN - 60)) | (1L << (StringLiteral - 60)) | (1L << (FloatLiteral - 60)) | (1L << (UintLiteral - 60)) | (1L << (HexUintLiteral - 60)) | (1L << (IntLiteral - 60)) | (1L << (BoolLiteral - 60)) | (1L << (Identifier - 60)))) != 0)) {
- {
- setState(915);
- argumentList();
- }
- }
-
- setState(918);
- match(CLOSE_PAREN);
- setState(921);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__37:
- {
- setState(919);
- behaviorWithDeclaration();
- }
- break;
- case NEWLINE:
- {
- setState(920);
- match(NEWLINE);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BehaviorWithDeclarationContext extends ParserRuleContext {
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode INDENT() { return getToken(OpenSCENARIO2Parser.INDENT, 0); }
- public TerminalNode DEDENT() { return getToken(OpenSCENARIO2Parser.DEDENT, 0); }
- public List behaviorWithMember() {
- return getRuleContexts(BehaviorWithMemberContext.class);
- }
- public BehaviorWithMemberContext behaviorWithMember(int i) {
- return getRuleContext(BehaviorWithMemberContext.class,i);
- }
- public BehaviorWithDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_behaviorWithDeclaration; }
- }
-
- public final BehaviorWithDeclarationContext behaviorWithDeclaration() throws RecognitionException {
- BehaviorWithDeclarationContext _localctx = new BehaviorWithDeclarationContext(_ctx, getState());
- enterRule(_localctx, 172, RULE_behaviorWithDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(923);
- match(T__37);
- setState(924);
- match(T__8);
- setState(925);
- match(NEWLINE);
- setState(926);
- match(INDENT);
- setState(928);
- _errHandler.sync(this);
- _la = _input.LA(1);
- do {
- {
- {
- setState(927);
- behaviorWithMember();
- }
- }
- setState(930);
- _errHandler.sync(this);
- _la = _input.LA(1);
- } while ( ((((_la - 39)) & ~0x3f) == 0 && ((1L << (_la - 39)) & ((1L << (T__38 - 39)) | (1L << (T__41 - 39)) | (1L << (T__50 - 39)) | (1L << (T__59 - 39)) | (1L << (T__64 - 39)) | (1L << (T__72 - 39)) | (1L << (T__76 - 39)) | (1L << (OPEN_BRACK - 39)) | (1L << (OPEN_PAREN - 39)) | (1L << (StringLiteral - 39)) | (1L << (FloatLiteral - 39)) | (1L << (UintLiteral - 39)) | (1L << (HexUintLiteral - 39)) | (1L << (IntLiteral - 39)) | (1L << (BoolLiteral - 39)) | (1L << (Identifier - 39)))) != 0) );
- setState(932);
- match(DEDENT);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class BehaviorWithMemberContext extends ParserRuleContext {
- public ConstraintDeclarationContext constraintDeclaration() {
- return getRuleContext(ConstraintDeclarationContext.class,0);
- }
- public ModifierInvocationContext modifierInvocation() {
- return getRuleContext(ModifierInvocationContext.class,0);
- }
- public UntilDirectiveContext untilDirective() {
- return getRuleContext(UntilDirectiveContext.class,0);
- }
- public BehaviorWithMemberContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_behaviorWithMember; }
- }
-
- public final BehaviorWithMemberContext behaviorWithMember() throws RecognitionException {
- BehaviorWithMemberContext _localctx = new BehaviorWithMemberContext(_ctx, getState());
- enterRule(_localctx, 174, RULE_behaviorWithMember);
- try {
- setState(937);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__38:
- case T__41:
- enterOuterAlt(_localctx, 1);
- {
- setState(934);
- constraintDeclaration();
- }
- break;
- case T__59:
- case T__64:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- enterOuterAlt(_localctx, 2);
- {
- setState(935);
- modifierInvocation();
- }
- break;
- case T__50:
- enterOuterAlt(_localctx, 3);
- {
- setState(936);
- untilDirective();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class LabelNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public LabelNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_labelName; }
- }
-
- public final LabelNameContext labelName() throws RecognitionException {
- LabelNameContext _localctx = new LabelNameContext(_ctx, getState());
- enterRule(_localctx, 176, RULE_labelName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(939);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ActorExpressionContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public ActorExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_actorExpression; }
- }
-
- public final ActorExpressionContext actorExpression() throws RecognitionException {
- ActorExpressionContext _localctx = new ActorExpressionContext(_ctx, getState());
- enterRule(_localctx, 178, RULE_actorExpression);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(941);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class WaitDirectiveContext extends ParserRuleContext {
- public EventSpecificationContext eventSpecification() {
- return getRuleContext(EventSpecificationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public WaitDirectiveContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_waitDirective; }
- }
-
- public final WaitDirectiveContext waitDirective() throws RecognitionException {
- WaitDirectiveContext _localctx = new WaitDirectiveContext(_ctx, getState());
- enterRule(_localctx, 180, RULE_waitDirective);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(943);
- match(T__47);
- setState(944);
- eventSpecification();
- setState(945);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class EmitDirectiveContext extends ParserRuleContext {
- public EventNameContext eventName() {
- return getRuleContext(EventNameContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public EmitDirectiveContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_emitDirective; }
- }
-
- public final EmitDirectiveContext emitDirective() throws RecognitionException {
- EmitDirectiveContext _localctx = new EmitDirectiveContext(_ctx, getState());
- enterRule(_localctx, 182, RULE_emitDirective);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(947);
- match(T__48);
- setState(948);
- eventName();
- setState(953);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==OPEN_PAREN) {
- {
- setState(949);
- match(OPEN_PAREN);
- setState(950);
- argumentList();
- setState(951);
- match(CLOSE_PAREN);
- }
- }
-
- setState(955);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class CallDirectiveContext extends ParserRuleContext {
- public MethodInvocationContext methodInvocation() {
- return getRuleContext(MethodInvocationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public CallDirectiveContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_callDirective; }
- }
-
- public final CallDirectiveContext callDirective() throws RecognitionException {
- CallDirectiveContext _localctx = new CallDirectiveContext(_ctx, getState());
- enterRule(_localctx, 184, RULE_callDirective);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(957);
- match(T__49);
- setState(958);
- methodInvocation();
- setState(959);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class UntilDirectiveContext extends ParserRuleContext {
- public EventSpecificationContext eventSpecification() {
- return getRuleContext(EventSpecificationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public UntilDirectiveContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_untilDirective; }
- }
-
- public final UntilDirectiveContext untilDirective() throws RecognitionException {
- UntilDirectiveContext _localctx = new UntilDirectiveContext(_ctx, getState());
- enterRule(_localctx, 186, RULE_untilDirective);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(961);
- match(T__50);
- setState(962);
- eventSpecification();
- setState(963);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class MethodInvocationContext extends ParserRuleContext {
- public PostfixExpContext postfixExp() {
- return getRuleContext(PostfixExpContext.class,0);
- }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public MethodInvocationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_methodInvocation; }
- }
-
- public final MethodInvocationContext methodInvocation() throws RecognitionException {
- MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState());
- enterRule(_localctx, 188, RULE_methodInvocation);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(965);
- postfixExp(0);
- setState(966);
- match(OPEN_PAREN);
- setState(968);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (T__59 - 60)) | (1L << (T__64 - 60)) | (1L << (T__72 - 60)) | (1L << (T__76 - 60)) | (1L << (OPEN_BRACK - 60)) | (1L << (OPEN_PAREN - 60)) | (1L << (StringLiteral - 60)) | (1L << (FloatLiteral - 60)) | (1L << (UintLiteral - 60)) | (1L << (HexUintLiteral - 60)) | (1L << (IntLiteral - 60)) | (1L << (BoolLiteral - 60)) | (1L << (Identifier - 60)))) != 0)) {
- {
- setState(967);
- argumentList();
- }
- }
-
- setState(970);
- match(CLOSE_PAREN);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class MethodDeclarationContext extends ParserRuleContext {
- public MethodNameContext methodName() {
- return getRuleContext(MethodNameContext.class,0);
- }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public MethodImplementationContext methodImplementation() {
- return getRuleContext(MethodImplementationContext.class,0);
- }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public ArgumentListSpecificationContext argumentListSpecification() {
- return getRuleContext(ArgumentListSpecificationContext.class,0);
- }
- public ReturnTypeContext returnType() {
- return getRuleContext(ReturnTypeContext.class,0);
- }
- public MethodDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_methodDeclaration; }
- }
-
- public final MethodDeclarationContext methodDeclaration() throws RecognitionException {
- MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState());
- enterRule(_localctx, 190, RULE_methodDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(972);
- match(T__51);
- setState(973);
- methodName();
- setState(974);
- match(OPEN_PAREN);
- setState(976);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==Identifier) {
- {
- setState(975);
- argumentListSpecification();
- }
- }
-
- setState(978);
- match(CLOSE_PAREN);
- setState(981);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__52) {
- {
- setState(979);
- match(T__52);
- setState(980);
- returnType();
- }
- }
-
- setState(983);
- methodImplementation();
- setState(984);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ReturnTypeContext extends ParserRuleContext {
- public TypeDeclaratorContext typeDeclarator() {
- return getRuleContext(TypeDeclaratorContext.class,0);
- }
- public ReturnTypeContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_returnType; }
- }
-
- public final ReturnTypeContext returnType() throws RecognitionException {
- ReturnTypeContext _localctx = new ReturnTypeContext(_ctx, getState());
- enterRule(_localctx, 192, RULE_returnType);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(986);
- typeDeclarator();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class MethodImplementationContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public StructuredIdentifierContext structuredIdentifier() {
- return getRuleContext(StructuredIdentifierContext.class,0);
- }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public MethodQualifierContext methodQualifier() {
- return getRuleContext(MethodQualifierContext.class,0);
- }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public MethodImplementationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_methodImplementation; }
- }
-
- public final MethodImplementationContext methodImplementation() throws RecognitionException {
- MethodImplementationContext _localctx = new MethodImplementationContext(_ctx, getState());
- enterRule(_localctx, 194, RULE_methodImplementation);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(988);
- match(T__3);
- setState(990);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__56) {
- {
- setState(989);
- methodQualifier();
- }
- }
-
- setState(1003);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__53:
- {
- setState(992);
- match(T__53);
- setState(993);
- expression();
- }
- break;
- case T__54:
- {
- setState(994);
- match(T__54);
- }
- break;
- case T__55:
- {
- setState(995);
- match(T__55);
- setState(996);
- structuredIdentifier(0);
- setState(997);
- match(OPEN_PAREN);
- setState(999);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (T__59 - 60)) | (1L << (T__64 - 60)) | (1L << (T__72 - 60)) | (1L << (T__76 - 60)) | (1L << (OPEN_BRACK - 60)) | (1L << (OPEN_PAREN - 60)) | (1L << (StringLiteral - 60)) | (1L << (FloatLiteral - 60)) | (1L << (UintLiteral - 60)) | (1L << (HexUintLiteral - 60)) | (1L << (IntLiteral - 60)) | (1L << (BoolLiteral - 60)) | (1L << (Identifier - 60)))) != 0)) {
- {
- setState(998);
- argumentList();
- }
- }
-
- setState(1001);
- match(CLOSE_PAREN);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class MethodQualifierContext extends ParserRuleContext {
- public MethodQualifierContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_methodQualifier; }
- }
-
- public final MethodQualifierContext methodQualifier() throws RecognitionException {
- MethodQualifierContext _localctx = new MethodQualifierContext(_ctx, getState());
- enterRule(_localctx, 196, RULE_methodQualifier);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1005);
- match(T__56);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class MethodNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public MethodNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_methodName; }
- }
-
- public final MethodNameContext methodName() throws RecognitionException {
- MethodNameContext _localctx = new MethodNameContext(_ctx, getState());
- enterRule(_localctx, 198, RULE_methodName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1007);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class CoverageDeclarationContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public CoverageArgumentListContext coverageArgumentList() {
- return getRuleContext(CoverageArgumentListContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode NEWLINE() { return getToken(OpenSCENARIO2Parser.NEWLINE, 0); }
- public CoverageDeclarationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_coverageDeclaration; }
- }
-
- public final CoverageDeclarationContext coverageDeclaration() throws RecognitionException {
- CoverageDeclarationContext _localctx = new CoverageDeclarationContext(_ctx, getState());
- enterRule(_localctx, 200, RULE_coverageDeclaration);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1009);
- _la = _input.LA(1);
- if ( !(_la==T__57 || _la==T__58) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- setState(1010);
- match(OPEN_PAREN);
- setState(1011);
- coverageArgumentList();
- setState(1012);
- match(CLOSE_PAREN);
- setState(1013);
- match(NEWLINE);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class CoverageArgumentListContext extends ParserRuleContext {
- public List Identifier() { return getTokens(OpenSCENARIO2Parser.Identifier); }
- public TerminalNode Identifier(int i) {
- return getToken(OpenSCENARIO2Parser.Identifier, i);
- }
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public List rangeConstructor() {
- return getRuleContexts(RangeConstructorContext.class);
- }
- public RangeConstructorContext rangeConstructor(int i) {
- return getRuleContext(RangeConstructorContext.class,i);
- }
- public List valueExp() {
- return getRuleContexts(ValueExpContext.class);
- }
- public ValueExpContext valueExp(int i) {
- return getRuleContext(ValueExpContext.class,i);
- }
- public List eventName() {
- return getRuleContexts(EventNameContext.class);
- }
- public EventNameContext eventName(int i) {
- return getRuleContext(EventNameContext.class,i);
- }
- public List namedArgument() {
- return getRuleContexts(NamedArgumentContext.class);
- }
- public NamedArgumentContext namedArgument(int i) {
- return getRuleContext(NamedArgumentContext.class,i);
- }
- public CoverageArgumentListContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_coverageArgumentList; }
- }
-
- public final CoverageArgumentListContext coverageArgumentList() throws RecognitionException {
- CoverageArgumentListContext _localctx = new CoverageArgumentListContext(_ctx, getState());
- enterRule(_localctx, 202, RULE_coverageArgumentList);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1015);
- match(Identifier);
- setState(1020);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,96,_ctx) ) {
- case 1:
- {
- setState(1016);
- match(T__7);
- setState(1017);
- match(T__53);
- setState(1018);
- match(T__8);
- setState(1019);
- expression();
- }
- break;
- }
- setState(1042);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- setState(1040);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,97,_ctx) ) {
- case 1:
- {
- {
- setState(1022);
- match(T__7);
- setState(1023);
- match(T__5);
- setState(1024);
- match(T__8);
- setState(1025);
- match(Identifier);
- }
- }
- break;
- case 2:
- {
- {
- setState(1026);
- match(T__7);
- setState(1027);
- match(T__59);
- setState(1028);
- match(T__8);
- setState(1029);
- rangeConstructor();
- }
- }
- break;
- case 3:
- {
- {
- setState(1030);
- match(T__7);
- setState(1031);
- match(T__34);
- setState(1032);
- match(T__8);
- setState(1033);
- valueExp();
- }
- }
- break;
- case 4:
- {
- {
- setState(1034);
- match(T__7);
- setState(1035);
- match(T__27);
- setState(1036);
- match(T__8);
- setState(1037);
- eventName();
- }
- }
- break;
- case 5:
- {
- {
- setState(1038);
- match(T__7);
- setState(1039);
- namedArgument();
- }
- }
- break;
- }
- }
- setState(1044);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ExpressionContext extends ParserRuleContext {
- public ImplicationContext implication() {
- return getRuleContext(ImplicationContext.class,0);
- }
- public TernaryOpExpContext ternaryOpExp() {
- return getRuleContext(TernaryOpExpContext.class,0);
- }
- public ExpressionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_expression; }
- }
-
- public final ExpressionContext expression() throws RecognitionException {
- ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
- enterRule(_localctx, 204, RULE_expression);
- try {
- setState(1047);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(1045);
- implication();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(1046);
- ternaryOpExp();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class TernaryOpExpContext extends ParserRuleContext {
- public ImplicationContext implication() {
- return getRuleContext(ImplicationContext.class,0);
- }
- public List expression() {
- return getRuleContexts(ExpressionContext.class);
- }
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
- public TernaryOpExpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_ternaryOpExp; }
- }
-
- public final TernaryOpExpContext ternaryOpExp() throws RecognitionException {
- TernaryOpExpContext _localctx = new TernaryOpExpContext(_ctx, getState());
- enterRule(_localctx, 206, RULE_ternaryOpExp);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1049);
- implication();
- setState(1050);
- match(T__60);
- setState(1051);
- expression();
- setState(1052);
- match(T__8);
- setState(1053);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ImplicationContext extends ParserRuleContext {
- public List disjunction() {
- return getRuleContexts(DisjunctionContext.class);
- }
- public DisjunctionContext disjunction(int i) {
- return getRuleContext(DisjunctionContext.class,i);
- }
- public ImplicationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_implication; }
- }
-
- public final ImplicationContext implication() throws RecognitionException {
- ImplicationContext _localctx = new ImplicationContext(_ctx, getState());
- enterRule(_localctx, 208, RULE_implication);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1055);
- disjunction();
- setState(1060);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__61) {
- {
- {
- setState(1056);
- match(T__61);
- setState(1057);
- disjunction();
- }
- }
- setState(1062);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class DisjunctionContext extends ParserRuleContext {
- public List conjunction() {
- return getRuleContexts(ConjunctionContext.class);
- }
- public ConjunctionContext conjunction(int i) {
- return getRuleContext(ConjunctionContext.class,i);
- }
- public DisjunctionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_disjunction; }
- }
-
- public final DisjunctionContext disjunction() throws RecognitionException {
- DisjunctionContext _localctx = new DisjunctionContext(_ctx, getState());
- enterRule(_localctx, 210, RULE_disjunction);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1063);
- conjunction();
- setState(1068);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__62) {
- {
- {
- setState(1064);
- match(T__62);
- setState(1065);
- conjunction();
- }
- }
- setState(1070);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ConjunctionContext extends ParserRuleContext {
- public List inversion() {
- return getRuleContexts(InversionContext.class);
- }
- public InversionContext inversion(int i) {
- return getRuleContext(InversionContext.class,i);
- }
- public ConjunctionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_conjunction; }
- }
-
- public final ConjunctionContext conjunction() throws RecognitionException {
- ConjunctionContext _localctx = new ConjunctionContext(_ctx, getState());
- enterRule(_localctx, 212, RULE_conjunction);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1071);
- inversion();
- setState(1076);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__63) {
- {
- {
- setState(1072);
- match(T__63);
- setState(1073);
- inversion();
- }
- }
- setState(1078);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class InversionContext extends ParserRuleContext {
- public InversionContext inversion() {
- return getRuleContext(InversionContext.class,0);
- }
- public RelationContext relation() {
- return getRuleContext(RelationContext.class,0);
- }
- public InversionContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_inversion; }
- }
-
- public final InversionContext inversion() throws RecognitionException {
- InversionContext _localctx = new InversionContext(_ctx, getState());
- enterRule(_localctx, 214, RULE_inversion);
- try {
- setState(1082);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__64:
- enterOuterAlt(_localctx, 1);
- {
- setState(1079);
- match(T__64);
- setState(1080);
- inversion();
- }
- break;
- case T__59:
- case T__72:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- enterOuterAlt(_localctx, 2);
- {
- setState(1081);
- relation(0);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class RelationContext extends ParserRuleContext {
- public SumContext sum() {
- return getRuleContext(SumContext.class,0);
- }
- public RelationContext relation() {
- return getRuleContext(RelationContext.class,0);
- }
- public RelationalOpContext relationalOp() {
- return getRuleContext(RelationalOpContext.class,0);
- }
- public RelationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_relation; }
- }
-
- public final RelationContext relation() throws RecognitionException {
- return relation(0);
- }
-
- private RelationContext relation(int _p) throws RecognitionException {
- ParserRuleContext _parentctx = _ctx;
- int _parentState = getState();
- RelationContext _localctx = new RelationContext(_ctx, _parentState);
- RelationContext _prevctx = _localctx;
- int _startState = 216;
- enterRecursionRule(_localctx, 216, RULE_relation, _p);
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- {
- setState(1085);
- sum(0);
- }
- _ctx.stop = _input.LT(-1);
- setState(1093);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,104,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- if ( _parseListeners!=null ) triggerExitRuleEvent();
- _prevctx = _localctx;
- {
- {
- _localctx = new RelationContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_relation);
- setState(1087);
- if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
- setState(1088);
- relationalOp();
- setState(1089);
- sum(0);
- }
- }
- }
- setState(1095);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,104,_ctx);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- unrollRecursionContexts(_parentctx);
- }
- return _localctx;
- }
-
- public static class RelationalOpContext extends ParserRuleContext {
- public RelationalOpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_relationalOp; }
- }
-
- public final RelationalOpContext relationalOp() throws RecognitionException {
- RelationalOpContext _localctx = new RelationalOpContext(_ctx, getState());
- enterRule(_localctx, 218, RULE_relationalOp);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1096);
- _la = _input.LA(1);
- if ( !(((((_la - 15)) & ~0x3f) == 0 && ((1L << (_la - 15)) & ((1L << (T__14 - 15)) | (1L << (T__65 - 15)) | (1L << (T__66 - 15)) | (1L << (T__67 - 15)) | (1L << (T__68 - 15)) | (1L << (T__69 - 15)) | (1L << (T__70 - 15)))) != 0)) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class SumContext extends ParserRuleContext {
- public TermContext term() {
- return getRuleContext(TermContext.class,0);
- }
- public SumContext sum() {
- return getRuleContext(SumContext.class,0);
- }
- public AdditiveOpContext additiveOp() {
- return getRuleContext(AdditiveOpContext.class,0);
- }
- public SumContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_sum; }
- }
-
- public final SumContext sum() throws RecognitionException {
- return sum(0);
- }
-
- private SumContext sum(int _p) throws RecognitionException {
- ParserRuleContext _parentctx = _ctx;
- int _parentState = getState();
- SumContext _localctx = new SumContext(_ctx, _parentState);
- SumContext _prevctx = _localctx;
- int _startState = 220;
- enterRecursionRule(_localctx, 220, RULE_sum, _p);
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- {
- setState(1099);
- term(0);
- }
- _ctx.stop = _input.LT(-1);
- setState(1107);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,105,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- if ( _parseListeners!=null ) triggerExitRuleEvent();
- _prevctx = _localctx;
- {
- {
- _localctx = new SumContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_sum);
- setState(1101);
- if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
- setState(1102);
- additiveOp();
- setState(1103);
- term(0);
- }
- }
- }
- setState(1109);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,105,_ctx);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- unrollRecursionContexts(_parentctx);
- }
- return _localctx;
- }
-
- public static class AdditiveOpContext extends ParserRuleContext {
- public AdditiveOpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_additiveOp; }
- }
-
- public final AdditiveOpContext additiveOp() throws RecognitionException {
- AdditiveOpContext _localctx = new AdditiveOpContext(_ctx, getState());
- enterRule(_localctx, 222, RULE_additiveOp);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1110);
- _la = _input.LA(1);
- if ( !(_la==T__71 || _la==T__72) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class TermContext extends ParserRuleContext {
- public FactorContext factor() {
- return getRuleContext(FactorContext.class,0);
- }
- public TermContext term() {
- return getRuleContext(TermContext.class,0);
- }
- public MultiplicativeOpContext multiplicativeOp() {
- return getRuleContext(MultiplicativeOpContext.class,0);
- }
- public TermContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_term; }
- }
-
- public final TermContext term() throws RecognitionException {
- return term(0);
- }
-
- private TermContext term(int _p) throws RecognitionException {
- ParserRuleContext _parentctx = _ctx;
- int _parentState = getState();
- TermContext _localctx = new TermContext(_ctx, _parentState);
- TermContext _prevctx = _localctx;
- int _startState = 224;
- enterRecursionRule(_localctx, 224, RULE_term, _p);
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- {
- setState(1113);
- factor();
- }
- _ctx.stop = _input.LT(-1);
- setState(1121);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,106,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- if ( _parseListeners!=null ) triggerExitRuleEvent();
- _prevctx = _localctx;
- {
- {
- _localctx = new TermContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_term);
- setState(1115);
- if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
- setState(1116);
- multiplicativeOp();
- setState(1117);
- factor();
- }
- }
- }
- setState(1123);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,106,_ctx);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- unrollRecursionContexts(_parentctx);
- }
- return _localctx;
- }
-
- public static class MultiplicativeOpContext extends ParserRuleContext {
- public MultiplicativeOpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_multiplicativeOp; }
- }
-
- public final MultiplicativeOpContext multiplicativeOp() throws RecognitionException {
- MultiplicativeOpContext _localctx = new MultiplicativeOpContext(_ctx, getState());
- enterRule(_localctx, 226, RULE_multiplicativeOp);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1124);
- _la = _input.LA(1);
- if ( !(((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (T__73 - 74)) | (1L << (T__74 - 74)) | (1L << (T__75 - 74)))) != 0)) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class FactorContext extends ParserRuleContext {
- public PostfixExpContext postfixExp() {
- return getRuleContext(PostfixExpContext.class,0);
- }
- public FactorContext factor() {
- return getRuleContext(FactorContext.class,0);
- }
- public FactorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_factor; }
- }
-
- public final FactorContext factor() throws RecognitionException {
- FactorContext _localctx = new FactorContext(_ctx, getState());
- enterRule(_localctx, 228, RULE_factor);
- try {
- setState(1129);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__59:
- case T__76:
- case OPEN_BRACK:
- case OPEN_PAREN:
- case StringLiteral:
- case FloatLiteral:
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- case BoolLiteral:
- case Identifier:
- enterOuterAlt(_localctx, 1);
- {
- setState(1126);
- postfixExp(0);
- }
- break;
- case T__72:
- enterOuterAlt(_localctx, 2);
- {
- setState(1127);
- match(T__72);
- setState(1128);
- factor();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PostfixExpContext extends ParserRuleContext {
- public PrimaryExpContext primaryExp() {
- return getRuleContext(PrimaryExpContext.class,0);
- }
- public PostfixExpContext postfixExp() {
- return getRuleContext(PostfixExpContext.class,0);
- }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public TypeDeclaratorContext typeDeclarator() {
- return getRuleContext(TypeDeclaratorContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode OPEN_BRACK() { return getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0); }
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public TerminalNode CLOSE_BRACK() { return getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0); }
- public ArgumentListContext argumentList() {
- return getRuleContext(ArgumentListContext.class,0);
- }
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public PostfixExpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_postfixExp; }
- }
-
- public final PostfixExpContext postfixExp() throws RecognitionException {
- return postfixExp(0);
- }
-
- private PostfixExpContext postfixExp(int _p) throws RecognitionException {
- ParserRuleContext _parentctx = _ctx;
- int _parentState = getState();
- PostfixExpContext _localctx = new PostfixExpContext(_ctx, _parentState);
- PostfixExpContext _prevctx = _localctx;
- int _startState = 230;
- enterRecursionRule(_localctx, 230, RULE_postfixExp, _p);
- int _la;
- try {
- int _alt;
- enterOuterAlt(_localctx, 1);
- {
- {
- setState(1132);
- primaryExp();
- }
- _ctx.stop = _input.LT(-1);
- setState(1164);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,110,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- if ( _parseListeners!=null ) triggerExitRuleEvent();
- _prevctx = _localctx;
- {
- setState(1162);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,109,_ctx) ) {
- case 1:
- {
- _localctx = new PostfixExpContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_postfixExp);
- setState(1134);
- if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
- setState(1135);
- match(T__1);
- setState(1136);
- match(T__30);
- setState(1137);
- match(OPEN_PAREN);
- setState(1138);
- typeDeclarator();
- setState(1139);
- match(CLOSE_PAREN);
- }
- break;
- case 2:
- {
- _localctx = new PostfixExpContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_postfixExp);
- setState(1141);
- if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
- setState(1142);
- match(T__1);
- setState(1143);
- match(T__3);
- setState(1144);
- match(OPEN_PAREN);
- setState(1145);
- typeDeclarator();
- setState(1146);
- match(CLOSE_PAREN);
- }
- break;
- case 3:
- {
- _localctx = new PostfixExpContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_postfixExp);
- setState(1148);
- if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
- setState(1149);
- match(OPEN_BRACK);
- setState(1150);
- expression();
- setState(1151);
- match(CLOSE_BRACK);
- }
- break;
- case 4:
- {
- _localctx = new PostfixExpContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_postfixExp);
- setState(1153);
- if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
- setState(1154);
- match(OPEN_PAREN);
- setState(1156);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (T__59 - 60)) | (1L << (T__64 - 60)) | (1L << (T__72 - 60)) | (1L << (T__76 - 60)) | (1L << (OPEN_BRACK - 60)) | (1L << (OPEN_PAREN - 60)) | (1L << (StringLiteral - 60)) | (1L << (FloatLiteral - 60)) | (1L << (UintLiteral - 60)) | (1L << (HexUintLiteral - 60)) | (1L << (IntLiteral - 60)) | (1L << (BoolLiteral - 60)) | (1L << (Identifier - 60)))) != 0)) {
- {
- setState(1155);
- argumentList();
- }
- }
-
- setState(1158);
- match(CLOSE_PAREN);
- }
- break;
- case 5:
- {
- _localctx = new PostfixExpContext(_parentctx, _parentState);
- pushNewRecursionContext(_localctx, _startState, RULE_postfixExp);
- setState(1159);
- if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
- setState(1160);
- match(T__1);
- setState(1161);
- fieldName();
- }
- break;
- }
- }
- }
- setState(1166);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,110,_ctx);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- unrollRecursionContexts(_parentctx);
- }
- return _localctx;
- }
-
- public static class FieldAccessContext extends ParserRuleContext {
- public PostfixExpContext postfixExp() {
- return getRuleContext(PostfixExpContext.class,0);
- }
- public FieldNameContext fieldName() {
- return getRuleContext(FieldNameContext.class,0);
- }
- public FieldAccessContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_fieldAccess; }
- }
-
- public final FieldAccessContext fieldAccess() throws RecognitionException {
- FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState());
- enterRule(_localctx, 232, RULE_fieldAccess);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1167);
- postfixExp(0);
- setState(1168);
- match(T__1);
- setState(1169);
- fieldName();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PrimaryExpContext extends ParserRuleContext {
- public ValueExpContext valueExp() {
- return getRuleContext(ValueExpContext.class,0);
- }
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public PrimaryExpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_primaryExp; }
- }
-
- public final PrimaryExpContext primaryExp() throws RecognitionException {
- PrimaryExpContext _localctx = new PrimaryExpContext(_ctx, getState());
- enterRule(_localctx, 234, RULE_primaryExp);
- try {
- setState(1178);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(1171);
- valueExp();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(1172);
- match(T__76);
- }
- break;
- case 3:
- enterOuterAlt(_localctx, 3);
- {
- setState(1173);
- match(Identifier);
- }
- break;
- case 4:
- enterOuterAlt(_localctx, 4);
- {
- setState(1174);
- match(OPEN_PAREN);
- setState(1175);
- expression();
- setState(1176);
- match(CLOSE_PAREN);
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ValueExpContext extends ParserRuleContext {
- public PhysicalLiteralContext physicalLiteral() {
- return getRuleContext(PhysicalLiteralContext.class,0);
- }
- public TerminalNode FloatLiteral() { return getToken(OpenSCENARIO2Parser.FloatLiteral, 0); }
- public IntegerLiteralContext integerLiteral() {
- return getRuleContext(IntegerLiteralContext.class,0);
- }
- public TerminalNode BoolLiteral() { return getToken(OpenSCENARIO2Parser.BoolLiteral, 0); }
- public TerminalNode StringLiteral() { return getToken(OpenSCENARIO2Parser.StringLiteral, 0); }
- public EnumValueReferenceContext enumValueReference() {
- return getRuleContext(EnumValueReferenceContext.class,0);
- }
- public ListConstructorContext listConstructor() {
- return getRuleContext(ListConstructorContext.class,0);
- }
- public RangeConstructorContext rangeConstructor() {
- return getRuleContext(RangeConstructorContext.class,0);
- }
- public ValueExpContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_valueExp; }
- }
-
- public final ValueExpContext valueExp() throws RecognitionException {
- ValueExpContext _localctx = new ValueExpContext(_ctx, getState());
- enterRule(_localctx, 236, RULE_valueExp);
- try {
- setState(1188);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,112,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(1180);
- physicalLiteral();
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(1181);
- match(FloatLiteral);
- }
- break;
- case 3:
- enterOuterAlt(_localctx, 3);
- {
- setState(1182);
- integerLiteral();
- }
- break;
- case 4:
- enterOuterAlt(_localctx, 4);
- {
- setState(1183);
- match(BoolLiteral);
- }
- break;
- case 5:
- enterOuterAlt(_localctx, 5);
- {
- setState(1184);
- match(StringLiteral);
- }
- break;
- case 6:
- enterOuterAlt(_localctx, 6);
- {
- setState(1185);
- enumValueReference();
- }
- break;
- case 7:
- enterOuterAlt(_localctx, 7);
- {
- setState(1186);
- listConstructor();
- }
- break;
- case 8:
- enterOuterAlt(_localctx, 8);
- {
- setState(1187);
- rangeConstructor();
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ListConstructorContext extends ParserRuleContext {
- public TerminalNode OPEN_BRACK() { return getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0); }
- public List expression() {
- return getRuleContexts(ExpressionContext.class);
- }
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
- public TerminalNode CLOSE_BRACK() { return getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0); }
- public ListConstructorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_listConstructor; }
- }
-
- public final ListConstructorContext listConstructor() throws RecognitionException {
- ListConstructorContext _localctx = new ListConstructorContext(_ctx, getState());
- enterRule(_localctx, 238, RULE_listConstructor);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1190);
- match(OPEN_BRACK);
- setState(1191);
- expression();
- setState(1196);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(1192);
- match(T__7);
- setState(1193);
- expression();
- }
- }
- setState(1198);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- setState(1199);
- match(CLOSE_BRACK);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class RangeConstructorContext extends ParserRuleContext {
- public TerminalNode OPEN_PAREN() { return getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0); }
- public List expression() {
- return getRuleContexts(ExpressionContext.class);
- }
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
- public TerminalNode CLOSE_PAREN() { return getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0); }
- public TerminalNode OPEN_BRACK() { return getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0); }
- public TerminalNode CLOSE_BRACK() { return getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0); }
- public RangeConstructorContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_rangeConstructor; }
- }
-
- public final RangeConstructorContext rangeConstructor() throws RecognitionException {
- RangeConstructorContext _localctx = new RangeConstructorContext(_ctx, getState());
- enterRule(_localctx, 240, RULE_rangeConstructor);
- try {
- setState(1214);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case T__59:
- enterOuterAlt(_localctx, 1);
- {
- setState(1201);
- match(T__59);
- setState(1202);
- match(OPEN_PAREN);
- setState(1203);
- expression();
- setState(1204);
- match(T__7);
- setState(1205);
- expression();
- setState(1206);
- match(CLOSE_PAREN);
- }
- break;
- case OPEN_BRACK:
- enterOuterAlt(_localctx, 2);
- {
- setState(1208);
- match(OPEN_BRACK);
- setState(1209);
- expression();
- setState(1210);
- match(T__77);
- setState(1211);
- expression();
- setState(1212);
- match(CLOSE_BRACK);
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ArgumentListSpecificationContext extends ParserRuleContext {
- public List argumentSpecification() {
- return getRuleContexts(ArgumentSpecificationContext.class);
- }
- public ArgumentSpecificationContext argumentSpecification(int i) {
- return getRuleContext(ArgumentSpecificationContext.class,i);
- }
- public ArgumentListSpecificationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_argumentListSpecification; }
- }
-
- public final ArgumentListSpecificationContext argumentListSpecification() throws RecognitionException {
- ArgumentListSpecificationContext _localctx = new ArgumentListSpecificationContext(_ctx, getState());
- enterRule(_localctx, 242, RULE_argumentListSpecification);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1216);
- argumentSpecification();
- setState(1221);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(1217);
- match(T__7);
- setState(1218);
- argumentSpecification();
- }
- }
- setState(1223);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ArgumentSpecificationContext extends ParserRuleContext {
- public ArgumentNameContext argumentName() {
- return getRuleContext(ArgumentNameContext.class,0);
- }
- public TypeDeclaratorContext typeDeclarator() {
- return getRuleContext(TypeDeclaratorContext.class,0);
- }
- public DefaultValueContext defaultValue() {
- return getRuleContext(DefaultValueContext.class,0);
- }
- public ArgumentSpecificationContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_argumentSpecification; }
- }
-
- public final ArgumentSpecificationContext argumentSpecification() throws RecognitionException {
- ArgumentSpecificationContext _localctx = new ArgumentSpecificationContext(_ctx, getState());
- enterRule(_localctx, 244, RULE_argumentSpecification);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1224);
- argumentName();
- setState(1225);
- match(T__8);
- setState(1226);
- typeDeclarator();
- setState(1229);
- _errHandler.sync(this);
- _la = _input.LA(1);
- if (_la==T__10) {
- {
- setState(1227);
- match(T__10);
- setState(1228);
- defaultValue();
- }
- }
-
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ArgumentNameContext extends ParserRuleContext {
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public ArgumentNameContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_argumentName; }
- }
-
- public final ArgumentNameContext argumentName() throws RecognitionException {
- ArgumentNameContext _localctx = new ArgumentNameContext(_ctx, getState());
- enterRule(_localctx, 246, RULE_argumentName);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1231);
- match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class ArgumentListContext extends ParserRuleContext {
- public List positionalArgument() {
- return getRuleContexts(PositionalArgumentContext.class);
- }
- public PositionalArgumentContext positionalArgument(int i) {
- return getRuleContext(PositionalArgumentContext.class,i);
- }
- public List namedArgument() {
- return getRuleContexts(NamedArgumentContext.class);
- }
- public NamedArgumentContext namedArgument(int i) {
- return getRuleContext(NamedArgumentContext.class,i);
- }
- public ArgumentListContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_argumentList; }
- }
-
- public final ArgumentListContext argumentList() throws RecognitionException {
- ArgumentListContext _localctx = new ArgumentListContext(_ctx, getState());
- enterRule(_localctx, 248, RULE_argumentList);
- int _la;
- try {
- int _alt;
- setState(1256);
- _errHandler.sync(this);
- switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) {
- case 1:
- enterOuterAlt(_localctx, 1);
- {
- setState(1233);
- positionalArgument();
- setState(1238);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,117,_ctx);
- while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
- if ( _alt==1 ) {
- {
- {
- setState(1234);
- match(T__7);
- setState(1235);
- positionalArgument();
- }
- }
- }
- setState(1240);
- _errHandler.sync(this);
- _alt = getInterpreter().adaptivePredict(_input,117,_ctx);
- }
- setState(1245);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(1241);
- match(T__7);
- setState(1242);
- namedArgument();
- }
- }
- setState(1247);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- break;
- case 2:
- enterOuterAlt(_localctx, 2);
- {
- setState(1248);
- namedArgument();
- setState(1253);
- _errHandler.sync(this);
- _la = _input.LA(1);
- while (_la==T__7) {
- {
- {
- setState(1249);
- match(T__7);
- setState(1250);
- namedArgument();
- }
- }
- setState(1255);
- _errHandler.sync(this);
- _la = _input.LA(1);
- }
- }
- break;
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PositionalArgumentContext extends ParserRuleContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public PositionalArgumentContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_positionalArgument; }
- }
-
- public final PositionalArgumentContext positionalArgument() throws RecognitionException {
- PositionalArgumentContext _localctx = new PositionalArgumentContext(_ctx, getState());
- enterRule(_localctx, 250, RULE_positionalArgument);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1258);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class NamedArgumentContext extends ParserRuleContext {
- public ArgumentNameContext argumentName() {
- return getRuleContext(ArgumentNameContext.class,0);
- }
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public NamedArgumentContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_namedArgument; }
- }
-
- public final NamedArgumentContext namedArgument() throws RecognitionException {
- NamedArgumentContext _localctx = new NamedArgumentContext(_ctx, getState());
- enterRule(_localctx, 252, RULE_namedArgument);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1260);
- argumentName();
- setState(1261);
- match(T__8);
- setState(1262);
- expression();
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class PhysicalLiteralContext extends ParserRuleContext {
- public Token unitName;
- public TerminalNode Identifier() { return getToken(OpenSCENARIO2Parser.Identifier, 0); }
- public TerminalNode FloatLiteral() { return getToken(OpenSCENARIO2Parser.FloatLiteral, 0); }
- public IntegerLiteralContext integerLiteral() {
- return getRuleContext(IntegerLiteralContext.class,0);
- }
- public PhysicalLiteralContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_physicalLiteral; }
- }
-
- public final PhysicalLiteralContext physicalLiteral() throws RecognitionException {
- PhysicalLiteralContext _localctx = new PhysicalLiteralContext(_ctx, getState());
- enterRule(_localctx, 254, RULE_physicalLiteral);
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1266);
- _errHandler.sync(this);
- switch (_input.LA(1)) {
- case FloatLiteral:
- {
- setState(1264);
- match(FloatLiteral);
- }
- break;
- case UintLiteral:
- case HexUintLiteral:
- case IntLiteral:
- {
- setState(1265);
- integerLiteral();
- }
- break;
- default:
- throw new NoViableAltException(this);
- }
- setState(1268);
- ((PhysicalLiteralContext)_localctx).unitName = match(Identifier);
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public static class IntegerLiteralContext extends ParserRuleContext {
- public TerminalNode UintLiteral() { return getToken(OpenSCENARIO2Parser.UintLiteral, 0); }
- public TerminalNode HexUintLiteral() { return getToken(OpenSCENARIO2Parser.HexUintLiteral, 0); }
- public TerminalNode IntLiteral() { return getToken(OpenSCENARIO2Parser.IntLiteral, 0); }
- public IntegerLiteralContext(ParserRuleContext parent, int invokingState) {
- super(parent, invokingState);
- }
- @Override public int getRuleIndex() { return RULE_integerLiteral; }
- }
-
- public final IntegerLiteralContext integerLiteral() throws RecognitionException {
- IntegerLiteralContext _localctx = new IntegerLiteralContext(_ctx, getState());
- enterRule(_localctx, 256, RULE_integerLiteral);
- int _la;
- try {
- enterOuterAlt(_localctx, 1);
- {
- setState(1270);
- _la = _input.LA(1);
- if ( !(((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & ((1L << (UintLiteral - 89)) | (1L << (HexUintLiteral - 89)) | (1L << (IntLiteral - 89)))) != 0)) ) {
- _errHandler.recoverInline(this);
- }
- else {
- if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
- _errHandler.reportMatch(this);
- consume();
- }
- }
- }
- catch (RecognitionException re) {
- _localctx.exception = re;
- _errHandler.reportError(this, re);
- _errHandler.recover(this, re);
- }
- finally {
- exitRule();
- }
- return _localctx;
- }
-
- public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
- switch (ruleIndex) {
- case 4:
- return structuredIdentifier_sempred((StructuredIdentifierContext)_localctx, predIndex);
- case 108:
- return relation_sempred((RelationContext)_localctx, predIndex);
- case 110:
- return sum_sempred((SumContext)_localctx, predIndex);
- case 112:
- return term_sempred((TermContext)_localctx, predIndex);
- case 115:
- return postfixExp_sempred((PostfixExpContext)_localctx, predIndex);
- }
- return true;
- }
- private boolean structuredIdentifier_sempred(StructuredIdentifierContext _localctx, int predIndex) {
- switch (predIndex) {
- case 0:
- return precpred(_ctx, 1);
- }
- return true;
- }
- private boolean relation_sempred(RelationContext _localctx, int predIndex) {
- switch (predIndex) {
- case 1:
- return precpred(_ctx, 1);
- }
- return true;
- }
- private boolean sum_sempred(SumContext _localctx, int predIndex) {
- switch (predIndex) {
- case 2:
- return precpred(_ctx, 1);
- }
- return true;
- }
- private boolean term_sempred(TermContext _localctx, int predIndex) {
- switch (predIndex) {
- case 3:
- return precpred(_ctx, 1);
- }
- return true;
- }
- private boolean postfixExp_sempred(PostfixExpContext _localctx, int predIndex) {
- switch (predIndex) {
- case 4:
- return precpred(_ctx, 5);
- case 5:
- return precpred(_ctx, 4);
- case 6:
- return precpred(_ctx, 3);
- case 7:
- return precpred(_ctx, 2);
- case 8:
- return precpred(_ctx, 1);
- }
- return true;
- }
-
- public static final String _serializedATN =
- "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3a\u04fb\4\2\t\2\4"+
- "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
- "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
- "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
- "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
- "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
- ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
- "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+
- "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
- "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
- "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
- "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+
- "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+
- "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+
- "\4\u0081\t\u0081\4\u0082\t\u0082\3\2\7\2\u0106\n\2\f\2\16\2\u0109\13\2"+
- "\3\2\7\2\u010c\n\2\f\2\16\2\u010f\13\2\3\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4"+
- "\3\4\5\4\u011a\n\4\3\5\3\5\5\5\u011e\n\5\3\6\3\6\3\6\3\6\3\6\3\6\7\6\u0126"+
- "\n\6\f\6\16\6\u0129\13\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\5"+
- "\7\u0136\n\7\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\13\3"+
- "\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\16\3\16\3\16\3\16\3"+
- "\16\5\16\u0156\n\16\3\16\3\16\5\16\u015a\n\16\3\16\3\16\3\17\3\17\3\17"+
- "\7\17\u0161\n\17\f\17\16\17\u0164\13\17\3\20\3\20\3\20\3\20\3\20\3\21"+
- "\3\21\3\21\3\21\5\21\u016f\n\21\3\22\3\22\3\22\3\22\5\22\u0175\n\22\3"+
- "\23\3\23\3\23\3\23\3\23\3\23\3\23\7\23\u017e\n\23\f\23\16\23\u0181\13"+
- "\23\3\23\3\23\3\23\3\24\3\24\3\24\5\24\u0189\n\24\3\25\3\25\3\26\3\26"+
- "\3\27\3\27\3\30\3\30\3\30\5\30\u0194\n\30\3\30\3\30\3\31\3\31\3\31\3\31"+
- "\3\31\3\31\3\31\3\31\3\31\5\31\u01a1\n\31\3\31\3\31\5\31\u01a5\n\31\5"+
- "\31\u01a7\n\31\3\31\3\31\3\31\3\31\6\31\u01ad\n\31\r\31\16\31\u01ae\3"+
- "\31\3\31\3\31\5\31\u01b4\n\31\3\32\3\32\3\32\3\32\3\32\5\32\u01bb\n\32"+
- "\3\33\3\33\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35"+
- "\u01ca\n\35\3\35\3\35\5\35\u01ce\n\35\5\35\u01d0\n\35\3\35\3\35\3\35\3"+
- "\35\6\35\u01d6\n\35\r\35\16\35\u01d7\3\35\3\35\3\35\5\35\u01dd\n\35\3"+
- "\36\3\36\3\36\3\36\3\36\5\36\u01e4\n\36\3\37\3\37\3 \3 \3 \3 \3 \3 \3"+
- " \3 \3 \5 \u01f1\n \3 \3 \5 \u01f5\n \5 \u01f7\n \3 \3 \3 \3 \3 \6 \u01fe"+
- "\n \r \16 \u01ff\3 \3 \3 \5 \u0205\n \3!\3!\3!\3!\3!\3!\5!\u020d\n!\3"+
- "\"\3\"\3\"\5\"\u0212\n\"\3\"\3\"\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0221"+
- "\n$\3$\3$\5$\u0225\n$\5$\u0227\n$\3$\3$\3$\3$\3$\6$\u022e\n$\r$\16$\u022f"+
- "\3$\3$\3$\5$\u0235\n$\3%\3%\3%\3%\5%\u023b\n%\3%\3%\3%\5%\u0240\n%\3%"+
- "\3%\3%\3%\6%\u0246\n%\r%\16%\u0247\3%\3%\3%\5%\u024d\n%\3&\3&\3\'\3\'"+
- "\5\'\u0253\n\'\3(\3(\3(\3(\3(\3(\3(\7(\u025c\n(\f(\16(\u025f\13(\3(\3"+
- "(\3(\3)\3)\3)\3)\3)\3)\6)\u026a\n)\r)\16)\u026b\3)\3)\3*\3*\5*\u0272\n"+
- "*\3+\3+\3+\3+\5+\u0278\n+\3,\3,\3,\3-\3-\5-\u027f\n-\3.\3.\3.\5.\u0284"+
- "\n.\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\63\3\63"+
- "\3\63\3\63\5\63\u0296\n\63\3\63\3\63\5\63\u029a\n\63\3\63\3\63\3\64\3"+
- "\64\5\64\u02a0\n\64\3\64\3\64\5\64\u02a4\n\64\3\64\5\64\u02a7\n\64\3\65"+
- "\3\65\3\65\3\66\3\66\3\66\3\67\3\67\38\38\39\39\39\59\u02b6\n9\39\39\3"+
- ":\3:\3:\3:\3:\5:\u02bf\n:\3;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3=\3=\3=\3=\3"+
- "=\3>\3>\3>\3>\3>\3>\3>\3>\5>\u02d8\n>\3>\3>\3?\3?\3@\3@\3A\3A\5A\u02e2"+
- "\nA\3B\3B\3B\7B\u02e7\nB\fB\16B\u02ea\13B\3B\3B\3B\3B\5B\u02f0\nB\3B\3"+
- "B\5B\u02f4\nB\3C\3C\3C\3C\7C\u02fa\nC\fC\16C\u02fd\13C\3C\3C\3C\3C\3C"+
- "\5C\u0304\nC\5C\u0306\nC\3C\3C\3D\3D\3D\3D\3D\3D\3D\5D\u0311\nD\3D\3D"+
- "\3E\3E\3F\3F\3F\3F\3F\6F\u031c\nF\rF\16F\u031d\3F\3F\3G\3G\5G\u0324\n"+
- "G\3H\3H\5H\u0328\nH\3I\3I\3I\5I\u032d\nI\3I\3I\3I\3I\3J\3J\3K\3K\3L\3"+
- "L\3L\3L\3L\3L\3M\3M\5M\u033f\nM\3N\3N\5N\u0343\nN\3N\3N\5N\u0347\nN\3"+
- "N\3N\3N\5N\u034c\nN\3N\3N\3N\3O\3O\3O\3O\3O\3P\3P\5P\u0358\nP\3Q\3Q\3"+
- "Q\3Q\3Q\3Q\6Q\u0360\nQ\rQ\16Q\u0361\3Q\3Q\3R\3R\5R\u0368\nR\3S\3S\3S\3"+
- "T\3T\3T\5T\u0370\nT\3T\3T\3T\3T\3T\5T\u0377\nT\3U\3U\3U\5U\u037c\nU\3"+
- "U\5U\u037f\nU\3U\3U\3U\3U\6U\u0385\nU\rU\16U\u0386\3U\3U\5U\u038b\nU\3"+
- "V\3V\3W\3W\3W\5W\u0392\nW\3W\3W\3W\5W\u0397\nW\3W\3W\3W\5W\u039c\nW\3"+
- "X\3X\3X\3X\3X\6X\u03a3\nX\rX\16X\u03a4\3X\3X\3Y\3Y\3Y\5Y\u03ac\nY\3Z\3"+
- "Z\3[\3[\3\\\3\\\3\\\3\\\3]\3]\3]\3]\3]\3]\5]\u03bc\n]\3]\3]\3^\3^\3^\3"+
- "^\3_\3_\3_\3_\3`\3`\3`\5`\u03cb\n`\3`\3`\3a\3a\3a\3a\5a\u03d3\na\3a\3"+
- "a\3a\5a\u03d8\na\3a\3a\3a\3b\3b\3c\3c\5c\u03e1\nc\3c\3c\3c\3c\3c\3c\3"+
- "c\5c\u03ea\nc\3c\3c\5c\u03ee\nc\3d\3d\3e\3e\3f\3f\3f\3f\3f\3f\3g\3g\3"+
- "g\3g\3g\5g\u03ff\ng\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3"+
- "g\3g\7g\u0413\ng\fg\16g\u0416\13g\3h\3h\5h\u041a\nh\3i\3i\3i\3i\3i\3i"+
- "\3j\3j\3j\7j\u0425\nj\fj\16j\u0428\13j\3k\3k\3k\7k\u042d\nk\fk\16k\u0430"+
- "\13k\3l\3l\3l\7l\u0435\nl\fl\16l\u0438\13l\3m\3m\3m\5m\u043d\nm\3n\3n"+
- "\3n\3n\3n\3n\3n\7n\u0446\nn\fn\16n\u0449\13n\3o\3o\3p\3p\3p\3p\3p\3p\3"+
- "p\7p\u0454\np\fp\16p\u0457\13p\3q\3q\3r\3r\3r\3r\3r\3r\3r\7r\u0462\nr"+
- "\fr\16r\u0465\13r\3s\3s\3t\3t\3t\5t\u046c\nt\3u\3u\3u\3u\3u\3u\3u\3u\3"+
- "u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\5u\u0487\nu\3u\3u\3"+
- "u\3u\7u\u048d\nu\fu\16u\u0490\13u\3v\3v\3v\3v\3w\3w\3w\3w\3w\3w\3w\5w"+
- "\u049d\nw\3x\3x\3x\3x\3x\3x\3x\3x\5x\u04a7\nx\3y\3y\3y\3y\7y\u04ad\ny"+
- "\fy\16y\u04b0\13y\3y\3y\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\5z\u04c1"+
- "\nz\3{\3{\3{\7{\u04c6\n{\f{\16{\u04c9\13{\3|\3|\3|\3|\3|\5|\u04d0\n|\3"+
- "}\3}\3~\3~\3~\7~\u04d7\n~\f~\16~\u04da\13~\3~\3~\7~\u04de\n~\f~\16~\u04e1"+
- "\13~\3~\3~\3~\7~\u04e6\n~\f~\16~\u04e9\13~\5~\u04eb\n~\3\177\3\177\3\u0080"+
- "\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\5\u0081\u04f5\n\u0081\3\u0081"+
- "\3\u0081\3\u0082\3\u0082\3\u0082\3\u0162\7\n\u00da\u00de\u00e2\u00e8\u0083"+
- "\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFH"+
- "JLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c"+
- "\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4"+
- "\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc"+
- "\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4"+
- "\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec"+
- "\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\2\13"+
- "\3\2[\\\3\2\31\35\3\2*+\3\2/\61\3\2<=\4\2\21\21DI\3\2JK\3\2LN\3\2[]\2"+
- "\u051f\2\u0107\3\2\2\2\4\u0112\3\2\2\2\6\u0119\3\2\2\2\b\u011d\3\2\2\2"+
- "\n\u011f\3\2\2\2\f\u0135\3\2\2\2\16\u0137\3\2\2\2\20\u013d\3\2\2\2\22"+
- "\u013f\3\2\2\2\24\u0141\3\2\2\2\26\u0146\3\2\2\2\30\u014e\3\2\2\2\32\u0150"+
- "\3\2\2\2\34\u015d\3\2\2\2\36\u0165\3\2\2\2 \u016a\3\2\2\2\"\u0170\3\2"+
- "\2\2$\u0176\3\2\2\2&\u0185\3\2\2\2(\u018a\3\2\2\2*\u018c\3\2\2\2,\u018e"+
- "\3\2\2\2.\u0193\3\2\2\2\60\u0197\3\2\2\2\62\u01ba\3\2\2\2\64\u01bc\3\2"+
- "\2\2\66\u01be\3\2\2\28\u01c0\3\2\2\2:\u01e3\3\2\2\2<\u01e5\3\2\2\2>\u01e7"+
- "\3\2\2\2@\u020c\3\2\2\2B\u0211\3\2\2\2D\u0215\3\2\2\2F\u0217\3\2\2\2H"+
- "\u0236\3\2\2\2J\u024e\3\2\2\2L\u0252\3\2\2\2N\u0254\3\2\2\2P\u0263\3\2"+
- "\2\2R\u0271\3\2\2\2T\u0277\3\2\2\2V\u0279\3\2\2\2X\u027e\3\2\2\2Z\u0283"+
- "\3\2\2\2\\\u0285\3\2\2\2^\u0287\3\2\2\2`\u028b\3\2\2\2b\u028d\3\2\2\2"+
- "d\u028f\3\2\2\2f\u02a6\3\2\2\2h\u02a8\3\2\2\2j\u02ab\3\2\2\2l\u02ae\3"+
- "\2\2\2n\u02b0\3\2\2\2p\u02b5\3\2\2\2r\u02be\3\2\2\2t\u02c0\3\2\2\2v\u02c5"+
- "\3\2\2\2x\u02ca\3\2\2\2z\u02cf\3\2\2\2|\u02db\3\2\2\2~\u02dd\3\2\2\2\u0080"+
- "\u02e1\3\2\2\2\u0082\u02e3\3\2\2\2\u0084\u02f5\3\2\2\2\u0086\u0309\3\2"+
- "\2\2\u0088\u0314\3\2\2\2\u008a\u0316\3\2\2\2\u008c\u0323\3\2\2\2\u008e"+
- "\u0327\3\2\2\2\u0090\u0329\3\2\2\2\u0092\u0332\3\2\2\2\u0094\u0334\3\2"+
- "\2\2\u0096\u0336\3\2\2\2\u0098\u033e\3\2\2\2\u009a\u0346\3\2\2\2\u009c"+
- "\u0350\3\2\2\2\u009e\u0357\3\2\2\2\u00a0\u0359\3\2\2\2\u00a2\u0367\3\2"+
- "\2\2\u00a4\u0369\3\2\2\2\u00a6\u036f\3\2\2\2\u00a8\u0378\3\2\2\2\u00aa"+
- "\u038c\3\2\2\2\u00ac\u0391\3\2\2\2\u00ae\u039d\3\2\2\2\u00b0\u03ab\3\2"+
- "\2\2\u00b2\u03ad\3\2\2\2\u00b4\u03af\3\2\2\2\u00b6\u03b1\3\2\2\2\u00b8"+
- "\u03b5\3\2\2\2\u00ba\u03bf\3\2\2\2\u00bc\u03c3\3\2\2\2\u00be\u03c7\3\2"+
- "\2\2\u00c0\u03ce\3\2\2\2\u00c2\u03dc\3\2\2\2\u00c4\u03de\3\2\2\2\u00c6"+
- "\u03ef\3\2\2\2\u00c8\u03f1\3\2\2\2\u00ca\u03f3\3\2\2\2\u00cc\u03f9\3\2"+
- "\2\2\u00ce\u0419\3\2\2\2\u00d0\u041b\3\2\2\2\u00d2\u0421\3\2\2\2\u00d4"+
- "\u0429\3\2\2\2\u00d6\u0431\3\2\2\2\u00d8\u043c\3\2\2\2\u00da\u043e\3\2"+
- "\2\2\u00dc\u044a\3\2\2\2\u00de\u044c\3\2\2\2\u00e0\u0458\3\2\2\2\u00e2"+
- "\u045a\3\2\2\2\u00e4\u0466\3\2\2\2\u00e6\u046b\3\2\2\2\u00e8\u046d\3\2"+
- "\2\2\u00ea\u0491\3\2\2\2\u00ec\u049c\3\2\2\2\u00ee\u04a6\3\2\2\2\u00f0"+
- "\u04a8\3\2\2\2\u00f2\u04c0\3\2\2\2\u00f4\u04c2\3\2\2\2\u00f6\u04ca\3\2"+
- "\2\2\u00f8\u04d1\3\2\2\2\u00fa\u04ea\3\2\2\2\u00fc\u04ec\3\2\2\2\u00fe"+
- "\u04ee\3\2\2\2\u0100\u04f4\3\2\2\2\u0102\u04f8\3\2\2\2\u0104\u0106\5\4"+
- "\3\2\u0105\u0104\3\2\2\2\u0106\u0109\3\2\2\2\u0107\u0105\3\2\2\2\u0107"+
- "\u0108\3\2\2\2\u0108\u010d\3\2\2\2\u0109\u0107\3\2\2\2\u010a\u010c\5\f"+
- "\7\2\u010b\u010a\3\2\2\2\u010c\u010f\3\2\2\2\u010d\u010b\3\2\2\2\u010d"+
- "\u010e\3\2\2\2\u010e\u0110\3\2\2\2\u010f\u010d\3\2\2\2\u0110\u0111\7\2"+
- "\2\3\u0111\3\3\2\2\2\u0112\u0113\5\6\4\2\u0113\5\3\2\2\2\u0114\u0115\7"+
- "\3\2\2\u0115\u0116\5\b\5\2\u0116\u0117\7Q\2\2\u0117\u011a\3\2\2\2\u0118"+
- "\u011a\7Q\2\2\u0119\u0114\3\2\2\2\u0119\u0118\3\2\2\2\u011a\7\3\2\2\2"+
- "\u011b\u011e\7Y\2\2\u011c\u011e\5\n\6\2\u011d\u011b\3\2\2\2\u011d\u011c"+
- "\3\2\2\2\u011e\t\3\2\2\2\u011f\u0120\b\6\1\2\u0120\u0121\7_\2\2\u0121"+
- "\u0127\3\2\2\2\u0122\u0123\f\3\2\2\u0123\u0124\7\4\2\2\u0124\u0126\7_"+
- "\2\2\u0125\u0122\3\2\2\2\u0126\u0129\3\2\2\2\u0127\u0125\3\2\2\2\u0127"+
- "\u0128\3\2\2\2\u0128\13\3\2\2\2\u0129\u0127\3\2\2\2\u012a\u0136\5\16\b"+
- "\2\u012b\u0136\5\26\f\2\u012c\u0136\5$\23\2\u012d\u0136\5\60\31\2\u012e"+
- "\u0136\58\35\2\u012f\u0136\5F$\2\u0130\u0136\5> \2\u0131\u0136\5H%\2\u0132"+
- "\u0136\5L\'\2\u0133\u0136\5V,\2\u0134\u0136\7Q\2\2\u0135\u012a\3\2\2\2"+
- "\u0135\u012b\3\2\2\2\u0135\u012c\3\2\2\2\u0135\u012d\3\2\2\2\u0135\u012e"+
- "\3\2\2\2\u0135\u012f\3\2\2\2\u0135\u0130\3\2\2\2\u0135\u0131\3\2\2\2\u0135"+
- "\u0132\3\2\2\2\u0135\u0133\3\2\2\2\u0135\u0134\3\2\2\2\u0136\r\3\2\2\2"+
- "\u0137\u0138\7\5\2\2\u0138\u0139\5\20\t\2\u0139\u013a\7\6\2\2\u013a\u013b"+
- "\5\22\n\2\u013b\u013c\7Q\2\2\u013c\17\3\2\2\2\u013d\u013e\7_\2\2\u013e"+
- "\21\3\2\2\2\u013f\u0140\5\24\13\2\u0140\23\3\2\2\2\u0141\u0142\7\7\2\2"+
- "\u0142\u0143\7T\2\2\u0143\u0144\5\34\17\2\u0144\u0145\7U\2\2\u0145\25"+
- "\3\2\2\2\u0146\u0147\7\b\2\2\u0147\u0148\7_\2\2\u0148\u0149\7\t\2\2\u0149"+
- "\u014a\5\20\t\2\u014a\u014b\7\6\2\2\u014b\u014c\5\30\r\2\u014c\u014d\7"+
- "Q\2\2\u014d\27\3\2\2\2\u014e\u014f\5\32\16\2\u014f\31\3\2\2\2\u0150\u0151"+
- "\7\7\2\2\u0151\u0152\7T\2\2\u0152\u0155\5\34\17\2\u0153\u0154\7\n\2\2"+
- "\u0154\u0156\5 \21\2\u0155\u0153\3\2\2\2\u0155\u0156\3\2\2\2\u0156\u0159"+
- "\3\2\2\2\u0157\u0158\7\n\2\2\u0158\u015a\5\"\22\2\u0159\u0157\3\2\2\2"+
- "\u0159\u015a\3\2\2\2\u015a\u015b\3\2\2\2\u015b\u015c\7U\2\2\u015c\33\3"+
- "\2\2\2\u015d\u0162\5\36\20\2\u015e\u015f\7\n\2\2\u015f\u0161\5\36\20\2"+
- "\u0160\u015e\3\2\2\2\u0161\u0164\3\2\2\2\u0162\u0163\3\2\2\2\u0162\u0160"+
- "\3\2\2\2\u0163\35\3\2\2\2\u0164\u0162\3\2\2\2\u0165\u0166\7_\2\2\u0166"+
- "\u0167\b\20\1\2\u0167\u0168\7\13\2\2\u0168\u0169\5\u0102\u0082\2\u0169"+
- "\37\3\2\2\2\u016a\u016b\7_\2\2\u016b\u016e\7\13\2\2\u016c\u016f\7Z\2\2"+
- "\u016d\u016f\5\u0102\u0082\2\u016e\u016c\3\2\2\2\u016e\u016d\3\2\2\2\u016f"+
- "!\3\2\2\2\u0170\u0171\7_\2\2\u0171\u0174\7\13\2\2\u0172\u0175\7Z\2\2\u0173"+
- "\u0175\5\u0102\u0082\2\u0174\u0172\3\2\2\2\u0174\u0173\3\2\2\2\u0175#"+
- "\3\2\2\2\u0176\u0177\7\f\2\2\u0177\u0178\5*\26\2\u0178\u0179\7\13\2\2"+
- "\u0179\u017a\7R\2\2\u017a\u017f\5&\24\2\u017b\u017c\7\n\2\2\u017c\u017e"+
- "\5&\24\2\u017d\u017b\3\2\2\2\u017e\u0181\3\2\2\2\u017f\u017d\3\2\2\2\u017f"+
- "\u0180\3\2\2\2\u0180\u0182\3\2\2\2\u0181\u017f\3\2\2\2\u0182\u0183\7S"+
- "\2\2\u0183\u0184\7Q\2\2\u0184%\3\2\2\2\u0185\u0188\5,\27\2\u0186\u0187"+
- "\7\r\2\2\u0187\u0189\5(\25\2\u0188\u0186\3\2\2\2\u0188\u0189\3\2\2\2\u0189"+
- "\'\3\2\2\2\u018a\u018b\t\2\2\2\u018b)\3\2\2\2\u018c\u018d\7_\2\2\u018d"+
- "+\3\2\2\2\u018e\u018f\7_\2\2\u018f-\3\2\2\2\u0190\u0191\5*\26\2\u0191"+
- "\u0192\7\16\2\2\u0192\u0194\3\2\2\2\u0193\u0190\3\2\2\2\u0193\u0194\3"+
- "\2\2\2\u0194\u0195\3\2\2\2\u0195\u0196\5,\27\2\u0196/\3\2\2\2\u0197\u0198"+
- "\7\17\2\2\u0198\u01a6\5\66\34\2\u0199\u019a\7\20\2\2\u019a\u01a4\5\66"+
- "\34\2\u019b\u019c\7T\2\2\u019c\u019d\5\64\33\2\u019d\u01a0\7\21\2\2\u019e"+
- "\u01a1\5.\30\2\u019f\u01a1\7^\2\2\u01a0\u019e\3\2\2\2\u01a0\u019f\3\2"+
- "\2\2\u01a1\u01a2\3\2\2\2\u01a2\u01a3\7U\2\2\u01a3\u01a5\3\2\2\2\u01a4"+
- "\u019b\3\2\2\2\u01a4\u01a5\3\2\2\2\u01a5\u01a7\3\2\2\2\u01a6\u0199\3\2"+
- "\2\2\u01a6\u01a7\3\2\2\2\u01a7\u01b3\3\2\2\2\u01a8\u01a9\7\13\2\2\u01a9"+
- "\u01aa\7Q\2\2\u01aa\u01ac\7`\2\2\u01ab\u01ad\5\62\32\2\u01ac\u01ab\3\2"+
- "\2\2\u01ad\u01ae\3\2\2\2\u01ae\u01ac\3\2\2\2\u01ae\u01af\3\2\2\2\u01af"+
- "\u01b0\3\2\2\2\u01b0\u01b1\7a\2\2\u01b1\u01b4\3\2\2\2\u01b2\u01b4\7Q\2"+
- "\2\u01b3\u01a8\3\2\2\2\u01b3\u01b2\3\2\2\2\u01b4\61\3\2\2\2\u01b5\u01bb"+
- "\5d\63\2\u01b6\u01bb\5\u0080A\2\u01b7\u01bb\5\u008eH\2\u01b8\u01bb\5\u00c0"+
- "a\2\u01b9\u01bb\5\u00caf\2\u01ba\u01b5\3\2\2\2\u01ba\u01b6\3\2\2\2\u01ba"+
- "\u01b7\3\2\2\2\u01ba\u01b8\3\2\2\2\u01ba\u01b9\3\2\2\2\u01bb\63\3\2\2"+
- "\2\u01bc\u01bd\7_\2\2\u01bd\65\3\2\2\2\u01be\u01bf\7_\2\2\u01bf\67\3\2"+
- "\2\2\u01c0\u01c1\7\22\2\2\u01c1\u01cf\5<\37\2\u01c2\u01c3\7\20\2\2\u01c3"+
- "\u01cd\5<\37\2\u01c4\u01c5\7T\2\2\u01c5\u01c6\5\64\33\2\u01c6\u01c9\7"+
- "\21\2\2\u01c7\u01ca\5.\30\2\u01c8\u01ca\7^\2\2\u01c9\u01c7\3\2\2\2\u01c9"+
- "\u01c8\3\2\2\2\u01ca\u01cb\3\2\2\2\u01cb\u01cc\7U\2\2\u01cc\u01ce\3\2"+
- "\2\2\u01cd\u01c4\3\2\2\2\u01cd\u01ce\3\2\2\2\u01ce\u01d0\3\2\2\2\u01cf"+
- "\u01c2\3\2\2\2\u01cf\u01d0\3\2\2\2\u01d0\u01dc\3\2\2\2\u01d1\u01d2\7\13"+
- "\2\2\u01d2\u01d3\7Q\2\2\u01d3\u01d5\7`\2\2\u01d4\u01d6\5:\36\2\u01d5\u01d4"+
- "\3\2\2\2\u01d6\u01d7\3\2\2\2\u01d7\u01d5\3\2\2\2\u01d7\u01d8\3\2\2\2\u01d8"+
- "\u01d9\3\2\2\2\u01d9\u01da\7a\2\2\u01da\u01dd\3\2\2\2\u01db\u01dd\7Q\2"+
- "\2\u01dc\u01d1\3\2\2\2\u01dc\u01db\3\2\2\2\u01dd9\3\2\2\2\u01de\u01e4"+
- "\5d\63\2\u01df\u01e4\5\u0080A\2\u01e0\u01e4\5\u008eH\2\u01e1\u01e4\5\u00c0"+
- "a\2\u01e2\u01e4\5\u00caf\2\u01e3\u01de\3\2\2\2\u01e3\u01df\3\2\2\2\u01e3"+
- "\u01e0\3\2\2\2\u01e3\u01e1\3\2\2\2\u01e3\u01e2\3\2\2\2\u01e4;\3\2\2\2"+
- "\u01e5\u01e6\7_\2\2\u01e6=\3\2\2\2\u01e7\u01e8\7\23\2\2\u01e8\u01f6\5"+
- "B\"\2\u01e9\u01ea\7\20\2\2\u01ea\u01f4\5B\"\2\u01eb\u01ec\7T\2\2\u01ec"+
- "\u01ed\5\64\33\2\u01ed\u01f0\7\21\2\2\u01ee\u01f1\5.\30\2\u01ef\u01f1"+
- "\7^\2\2\u01f0\u01ee\3\2\2\2\u01f0\u01ef\3\2\2\2\u01f1\u01f2\3\2\2\2\u01f2"+
- "\u01f3\7U\2\2\u01f3\u01f5\3\2\2\2\u01f4\u01eb\3\2\2\2\u01f4\u01f5\3\2"+
- "\2\2\u01f5\u01f7\3\2\2\2\u01f6\u01e9\3\2\2\2\u01f6\u01f7\3\2\2\2\u01f7"+
- "\u0204\3\2\2\2\u01f8\u01f9\7\13\2\2\u01f9\u01fa\7Q\2\2\u01fa\u01fd\7`"+
- "\2\2\u01fb\u01fe\5@!\2\u01fc\u01fe\5\u009eP\2\u01fd\u01fb\3\2\2\2\u01fd"+
- "\u01fc\3\2\2\2\u01fe\u01ff\3\2\2\2\u01ff\u01fd\3\2\2\2\u01ff\u0200\3\2"+
- "\2\2\u0200\u0201\3\2\2\2\u0201\u0202\7a\2\2\u0202\u0205\3\2\2\2\u0203"+
- "\u0205\7Q\2\2\u0204\u01f8\3\2\2\2\u0204\u0203\3\2\2\2\u0205?\3\2\2\2\u0206"+
- "\u020d\5d\63\2\u0207\u020d\5\u0080A\2\u0208\u020d\5\u008eH\2\u0209\u020d"+
- "\5\u00c0a\2\u020a\u020d\5\u00caf\2\u020b\u020d\5\u009aN\2\u020c\u0206"+
- "\3\2\2\2\u020c\u0207\3\2\2\2\u020c\u0208\3\2\2\2\u020c\u0209\3\2\2\2\u020c"+
- "\u020a\3\2\2\2\u020c\u020b\3\2\2\2\u020dA\3\2\2\2\u020e\u020f\5<\37\2"+
- "\u020f\u0210\7\4\2\2\u0210\u0212\3\2\2\2\u0211\u020e\3\2\2\2\u0211\u0212"+
- "\3\2\2\2\u0212\u0213\3\2\2\2\u0213\u0214\5D#\2\u0214C\3\2\2\2\u0215\u0216"+
- "\7_\2\2\u0216E\3\2\2\2\u0217\u0218\7\24\2\2\u0218\u0226\5B\"\2\u0219\u021a"+
- "\7\20\2\2\u021a\u0224\5B\"\2\u021b\u021c\7T\2\2\u021c\u021d\5\64\33\2"+
- "\u021d\u0220\7\21\2\2\u021e\u0221\5.\30\2\u021f\u0221\7^\2\2\u0220\u021e"+
- "\3\2\2\2\u0220\u021f\3\2\2\2\u0221\u0222\3\2\2\2\u0222\u0223\7U\2\2\u0223"+
- "\u0225\3\2\2\2\u0224\u021b\3\2\2\2\u0224\u0225\3\2\2\2\u0225\u0227\3\2"+
- "\2\2\u0226\u0219\3\2\2\2\u0226\u0227\3\2\2\2\u0227\u0234\3\2\2\2\u0228"+
- "\u0229\7\13\2\2\u0229\u022a\7Q\2\2\u022a\u022d\7`\2\2\u022b\u022e\5@!"+
- "\2\u022c\u022e\5\u009eP\2\u022d\u022b\3\2\2\2\u022d\u022c\3\2\2\2\u022e"+
- "\u022f\3\2\2\2\u022f\u022d\3\2\2\2\u022f\u0230\3\2\2\2\u0230\u0231\3\2"+
- "\2\2\u0231\u0232\7a\2\2\u0232\u0235\3\2\2\2\u0233\u0235\7Q\2\2\u0234\u0228"+
- "\3\2\2\2\u0234\u0233\3\2\2\2\u0235G\3\2\2\2\u0236\u023a\7\25\2\2\u0237"+
- "\u0238\5<\37\2\u0238\u0239\7\4\2\2\u0239\u023b\3\2\2\2\u023a\u0237\3\2"+
- "\2\2\u023a\u023b\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023f\5J&\2\u023d\u023e"+
- "\7\t\2\2\u023e\u0240\5B\"\2\u023f\u023d\3\2\2\2\u023f\u0240\3\2\2\2\u0240"+
- "\u024c\3\2\2\2\u0241\u0242\7\13\2\2\u0242\u0243\7Q\2\2\u0243\u0245\7`"+
- "\2\2\u0244\u0246\5@!\2\u0245\u0244\3\2\2\2\u0246\u0247\3\2\2\2\u0247\u0245"+
- "\3\2\2\2\u0247\u0248\3\2\2\2\u0248\u0249\3\2\2\2\u0249\u024a\7a\2\2\u024a"+
- "\u024d\3\2\2\2\u024b\u024d\7Q\2\2\u024c\u0241\3\2\2\2\u024c\u024b\3\2"+
- "\2\2\u024dI\3\2\2\2\u024e\u024f\7_\2\2\u024fK\3\2\2\2\u0250\u0253\5N("+
- "\2\u0251\u0253\5P)\2\u0252\u0250\3\2\2\2\u0252\u0251\3\2\2\2\u0253M\3"+
- "\2\2\2\u0254\u0255\7\26\2\2\u0255\u0256\5*\26\2\u0256\u0257\7\13\2\2\u0257"+
- "\u0258\7R\2\2\u0258\u025d\5&\24\2\u0259\u025a\7\n\2\2\u025a\u025c\5&\24"+
- "\2\u025b\u0259\3\2\2\2\u025c\u025f\3\2\2\2\u025d\u025b\3\2\2\2\u025d\u025e"+
- "\3\2\2\2\u025e\u0260\3\2\2\2\u025f\u025d\3\2\2\2\u0260\u0261\7S\2\2\u0261"+
- "\u0262\7Q\2\2\u0262O\3\2\2\2\u0263\u0264\7\26\2\2\u0264\u0265\5R*\2\u0265"+
- "\u0266\7\13\2\2\u0266\u0267\7Q\2\2\u0267\u0269\7`\2\2\u0268\u026a\5T+"+
- "\2\u0269\u0268\3\2\2\2\u026a\u026b\3\2\2\2\u026b\u0269\3\2\2\2\u026b\u026c"+
- "\3\2\2\2\u026c\u026d\3\2\2\2\u026d\u026e\7a\2\2\u026eQ\3\2\2\2\u026f\u0272"+
- "\5b\62\2\u0270\u0272\5B\"\2\u0271\u026f\3\2\2\2\u0271\u0270\3\2\2\2\u0272"+
- "S\3\2\2\2\u0273\u0278\5\62\32\2\u0274\u0278\5:\36\2\u0275\u0278\5@!\2"+
- "\u0276\u0278\5\u009eP\2\u0277\u0273\3\2\2\2\u0277\u0274\3\2\2\2\u0277"+
- "\u0275\3\2\2\2\u0277\u0276\3\2\2\2\u0278U\3\2\2\2\u0279\u027a\7\27\2\2"+
- "\u027a\u027b\5\u0082B\2\u027bW\3\2\2\2\u027c\u027f\5Z.\2\u027d\u027f\5"+
- "\\/\2\u027e\u027c\3\2\2\2\u027e\u027d\3\2\2\2\u027fY\3\2\2\2\u0280\u0284"+
- "\5`\61\2\u0281\u0284\5b\62\2\u0282\u0284\5B\"\2\u0283\u0280\3\2\2\2\u0283"+
- "\u0281\3\2\2\2\u0283\u0282\3\2\2\2\u0284[\3\2\2\2\u0285\u0286\5^\60\2"+
- "\u0286]\3\2\2\2\u0287\u0288\7\30\2\2\u0288\u0289\7\t\2\2\u0289\u028a\5"+
- "Z.\2\u028a_\3\2\2\2\u028b\u028c\t\3\2\2\u028ca\3\2\2\2\u028d\u028e\7_"+
- "\2\2\u028ec\3\2\2\2\u028f\u0290\7\36\2\2\u0290\u0295\5n8\2\u0291\u0292"+
- "\7T\2\2\u0292\u0293\5\u00f4{\2\u0293\u0294\7U\2\2\u0294\u0296\3\2\2\2"+
- "\u0295\u0291\3\2\2\2\u0295\u0296\3\2\2\2\u0296\u0299\3\2\2\2\u0297\u0298"+
- "\7\6\2\2\u0298\u029a\5f\64\2\u0299\u0297\3\2\2\2\u0299\u029a\3\2\2\2\u029a"+
- "\u029b\3\2\2\2\u029b\u029c\7Q\2\2\u029ce\3\2\2\2\u029d\u02a3\5h\65\2\u029e"+
- "\u02a0\5j\66\2\u029f\u029e\3\2\2\2\u029f\u02a0\3\2\2\2\u02a0\u02a1\3\2"+
- "\2\2\u02a1\u02a2\7\37\2\2\u02a2\u02a4\5r:\2\u02a3\u029f\3\2\2\2\u02a3"+
- "\u02a4\3\2\2\2\u02a4\u02a7\3\2\2\2\u02a5\u02a7\5r:\2\u02a6\u029d\3\2\2"+
- "\2\u02a6\u02a5\3\2\2\2\u02a7g\3\2\2\2\u02a8\u02a9\7 \2\2\u02a9\u02aa\5"+
- "p9\2\u02aai\3\2\2\2\u02ab\u02ac\7!\2\2\u02ac\u02ad\5l\67\2\u02adk\3\2"+
- "\2\2\u02ae\u02af\7_\2\2\u02afm\3\2\2\2\u02b0\u02b1\7_\2\2\u02b1o\3\2\2"+
- "\2\u02b2\u02b3\5\u00ceh\2\u02b3\u02b4\7\4\2\2\u02b4\u02b6\3\2\2\2\u02b5"+
- "\u02b2\3\2\2\2\u02b5\u02b6\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b8\5n"+
- "8\2\u02b8q\3\2\2\2\u02b9\u02bf\5|?\2\u02ba\u02bf\5t;\2\u02bb\u02bf\5v"+
- "<\2\u02bc\u02bf\5x=\2\u02bd\u02bf\5z>\2\u02be\u02b9\3\2\2\2\u02be\u02ba"+
- "\3\2\2\2\u02be\u02bb\3\2\2\2\u02be\u02bc\3\2\2\2\u02be\u02bd\3\2\2\2\u02bf"+
- "s\3\2\2\2\u02c0\u02c1\7\"\2\2\u02c1\u02c2\7T\2\2\u02c2\u02c3\5|?\2\u02c3"+
- "\u02c4\7U\2\2\u02c4u\3\2\2\2\u02c5\u02c6\7#\2\2\u02c6\u02c7\7T\2\2\u02c7"+
- "\u02c8\5|?\2\u02c8\u02c9\7U\2\2\u02c9w\3\2\2\2\u02ca\u02cb\7$\2\2\u02cb"+
- "\u02cc\7T\2\2\u02cc\u02cd\5~@\2\u02cd\u02ce\7U\2\2\u02cey\3\2\2\2\u02cf"+
- "\u02d0\7%\2\2\u02d0\u02d1\7T\2\2\u02d1\u02d7\5~@\2\u02d2\u02d3\7\n\2\2"+
- "\u02d3\u02d4\7_\2\2\u02d4\u02d5\b>\1\2\u02d5\u02d6\7\13\2\2\u02d6\u02d8"+
- "\5~@\2\u02d7\u02d2\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u02d9\3\2\2\2\u02d9"+
- "\u02da\7U\2\2\u02da{\3\2\2\2\u02db\u02dc\5\u00ceh\2\u02dc}\3\2\2\2\u02dd"+
- "\u02de\5\u00ceh\2\u02de\177\3\2\2\2\u02df\u02e2\5\u0082B\2\u02e0\u02e2"+
- "\5\u0084C\2\u02e1\u02df\3\2\2\2\u02e1\u02e0\3\2\2\2\u02e2\u0081\3\2\2"+
- "\2\u02e3\u02e8\5\64\33\2\u02e4\u02e5\7\n\2\2\u02e5\u02e7\5\64\33\2\u02e6"+
- "\u02e4\3\2\2\2\u02e7\u02ea\3\2\2\2\u02e8\u02e6\3\2\2\2\u02e8\u02e9\3\2"+
- "\2\2\u02e9\u02eb\3\2\2\2\u02ea\u02e8\3\2\2\2\u02eb\u02ec\7\13\2\2\u02ec"+
- "\u02ef\5X-\2\u02ed\u02ee\7\r\2\2\u02ee\u02f0\5\u0088E\2\u02ef\u02ed\3"+
- "\2\2\2\u02ef\u02f0\3\2\2\2\u02f0\u02f3\3\2\2\2\u02f1\u02f4\5\u008aF\2"+
- "\u02f2\u02f4\7Q\2\2\u02f3\u02f1\3\2\2\2\u02f3\u02f2\3\2\2\2\u02f4\u0083"+
- "\3\2\2\2\u02f5\u02f6\7&\2\2\u02f6\u02fb\5\64\33\2\u02f7\u02f8\7\n\2\2"+
- "\u02f8\u02fa\5\64\33\2\u02f9\u02f7\3\2\2\2\u02fa\u02fd\3\2\2\2\u02fb\u02f9"+
- "\3\2\2\2\u02fb\u02fc\3\2\2\2\u02fc\u02fe\3\2\2\2\u02fd\u02fb\3\2\2\2\u02fe"+
- "\u02ff\7\13\2\2\u02ff\u0305\5X-\2\u0300\u0303\7\r\2\2\u0301\u0304\5\u0086"+
- "D\2\u0302\u0304\5\u00eex\2\u0303\u0301\3\2\2\2\u0303\u0302\3\2\2\2\u0304"+
- "\u0306\3\2\2\2\u0305\u0300\3\2\2\2\u0305\u0306\3\2\2\2\u0306\u0307\3\2"+
- "\2\2\u0307\u0308\7Q\2\2\u0308\u0085\3\2\2\2\u0309\u030a\7\'\2\2\u030a"+
- "\u030b\7T\2\2\u030b\u030c\5\u00ceh\2\u030c\u030d\7\n\2\2\u030d\u0310\5"+
- "f\64\2\u030e\u030f\7\n\2\2\u030f\u0311\5\u0088E\2\u0310\u030e\3\2\2\2"+
- "\u0310\u0311\3\2\2\2\u0311\u0312\3\2\2\2\u0312\u0313\7U\2\2\u0313\u0087"+
- "\3\2\2\2\u0314\u0315\5\u00ceh\2\u0315\u0089\3\2\2\2\u0316\u0317\7(\2\2"+
- "\u0317\u0318\7\13\2\2\u0318\u0319\7Q\2\2\u0319\u031b\7`\2\2\u031a\u031c"+
- "\5\u008cG\2\u031b\u031a\3\2\2\2\u031c\u031d\3\2\2\2\u031d\u031b\3\2\2"+
- "\2\u031d\u031e\3\2\2\2\u031e\u031f\3\2\2\2\u031f\u0320\7a\2\2\u0320\u008b"+
- "\3\2\2\2\u0321\u0324\5\u008eH\2\u0322\u0324\5\u00caf\2\u0323\u0321\3\2"+
- "\2\2\u0323\u0322\3\2\2\2\u0324\u008d\3\2\2\2\u0325\u0328\5\u0090I\2\u0326"+
- "\u0328\5\u0096L\2\u0327\u0325\3\2\2\2\u0327\u0326\3\2\2\2\u0328\u008f"+
- "\3\2\2\2\u0329\u032a\7)\2\2\u032a\u032c\7T\2\2\u032b\u032d\5\u0092J\2"+
- "\u032c\u032b\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u032e\3\2\2\2\u032e\u032f"+
- "\5\u0094K\2\u032f\u0330\7U\2\2\u0330\u0331\7Q\2\2\u0331\u0091\3\2\2\2"+
- "\u0332\u0333\t\4\2\2\u0333\u0093\3\2\2\2\u0334\u0335\5\u00ceh\2\u0335"+
- "\u0095\3\2\2\2\u0336\u0337\7,\2\2\u0337\u0338\7T\2\2\u0338\u0339\5\u0098"+
- "M\2\u0339\u033a\7U\2\2\u033a\u033b\7Q\2\2\u033b\u0097\3\2\2\2\u033c\u033f"+
- "\5\64\33\2\u033d\u033f\5\u00eav\2\u033e\u033c\3\2\2\2\u033e\u033d\3\2"+
- "\2\2\u033f\u0099\3\2\2\2\u0340\u0343\5\u009cO\2\u0341\u0343\5\u00b4[\2"+
- "\u0342\u0340\3\2\2\2\u0342\u0341\3\2\2\2\u0343\u0344\3\2\2\2\u0344\u0345"+
- "\7\4\2\2\u0345\u0347\3\2\2\2\u0346\u0342\3\2\2\2\u0346\u0347\3\2\2\2\u0347"+
- "\u0348\3\2\2\2\u0348\u0349\5J&\2\u0349\u034b\7T\2\2\u034a\u034c\5\u00fa"+
- "~\2\u034b\u034a\3\2\2\2\u034b\u034c\3\2\2\2\u034c\u034d\3\2\2\2\u034d"+
- "\u034e\7U\2\2\u034e\u034f\7Q\2\2\u034f\u009b\3\2\2\2\u0350\u0351\5\u00b4"+
- "[\2\u0351\u0352\7\4\2\2\u0352\u0353\3\2\2\2\u0353\u0354\5D#\2\u0354\u009d"+
- "\3\2\2\2\u0355\u0358\5\u00a0Q\2\u0356\u0358\5\u00a4S\2\u0357\u0355\3\2"+
- "\2\2\u0357\u0356\3\2\2\2\u0358\u009f\3\2\2\2\u0359\u035a\7-\2\2\u035a"+
- "\u035b\5f\64\2\u035b\u035c\7\13\2\2\u035c\u035d\7Q\2\2\u035d\u035f\7`"+
- "\2\2\u035e\u0360\5\u00a2R\2\u035f\u035e\3\2\2\2\u0360\u0361\3\2\2\2\u0361"+
- "\u035f\3\2\2\2\u0361\u0362\3\2\2\2\u0362\u0363\3\2\2\2\u0363\u0364\7a"+
- "\2\2\u0364\u00a1\3\2\2\2\u0365\u0368\5\u00ba^\2\u0366\u0368\5\u00b8]\2"+
- "\u0367\u0365\3\2\2\2\u0367\u0366\3\2\2\2\u0368\u00a3\3\2\2\2\u0369\u036a"+
- "\7.\2\2\u036a\u036b\5\u00a6T\2\u036b\u00a5\3\2\2\2\u036c\u036d\5\u00b2"+
- "Z\2\u036d\u036e\7\13\2\2\u036e\u0370\3\2\2\2\u036f\u036c\3\2\2\2\u036f"+
- "\u0370\3\2\2\2\u0370\u0376\3\2\2\2\u0371\u0377\5\u00a8U\2\u0372\u0377"+
- "\5\u00acW\2\u0373\u0377\5\u00b6\\\2\u0374\u0377\5\u00b8]\2\u0375\u0377"+
- "\5\u00ba^\2\u0376\u0371\3\2\2\2\u0376\u0372\3\2\2\2\u0376\u0373\3\2\2"+
- "\2\u0376\u0374\3\2\2\2\u0376\u0375\3\2\2\2\u0377\u00a7\3\2\2\2\u0378\u037e"+
- "\5\u00aaV\2\u0379\u037b\7T\2\2\u037a\u037c\5\u00fa~\2\u037b\u037a\3\2"+
- "\2\2\u037b\u037c\3\2\2\2\u037c\u037d\3\2\2\2\u037d\u037f\7U\2\2\u037e"+
- "\u0379\3\2\2\2\u037e\u037f\3\2\2\2\u037f\u0380\3\2\2\2\u0380\u0381\7\13"+
- "\2\2\u0381\u0382\7Q\2\2\u0382\u0384\7`\2\2\u0383\u0385\5\u00a6T\2\u0384"+
- "\u0383\3\2\2\2\u0385\u0386\3\2\2\2\u0386\u0384\3\2\2\2\u0386\u0387\3\2"+
- "\2\2\u0387\u0388\3\2\2\2\u0388\u038a\7a\2\2\u0389\u038b\5\u00aeX\2\u038a"+
- "\u0389\3\2\2\2\u038a\u038b\3\2\2\2\u038b\u00a9\3\2\2\2\u038c\u038d\t\5"+
- "\2\2\u038d\u00ab\3\2\2\2\u038e\u038f\5\u00b4[\2\u038f\u0390\7\4\2\2\u0390"+
- "\u0392\3\2\2\2\u0391\u038e\3\2\2\2\u0391\u0392\3\2\2\2\u0392\u0393\3\2"+
- "\2\2\u0393\u0394\5D#\2\u0394\u0396\7T\2\2\u0395\u0397\5\u00fa~\2\u0396"+
- "\u0395\3\2\2\2\u0396\u0397\3\2\2\2\u0397\u0398\3\2\2\2\u0398\u039b\7U"+
- "\2\2\u0399\u039c\5\u00aeX\2\u039a\u039c\7Q\2\2\u039b\u0399\3\2\2\2\u039b"+
- "\u039a\3\2\2\2\u039c\u00ad\3\2\2\2\u039d\u039e\7(\2\2\u039e\u039f\7\13"+
- "\2\2\u039f\u03a0\7Q\2\2\u03a0\u03a2\7`\2\2\u03a1\u03a3\5\u00b0Y\2\u03a2"+
- "\u03a1\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a2\3\2\2\2\u03a4\u03a5\3\2"+
- "\2\2\u03a5\u03a6\3\2\2\2\u03a6\u03a7\7a\2\2\u03a7\u00af\3\2\2\2\u03a8"+
- "\u03ac\5\u008eH\2\u03a9\u03ac\5\u009aN\2\u03aa\u03ac\5\u00bc_\2\u03ab"+
- "\u03a8\3\2\2\2\u03ab\u03a9\3\2\2\2\u03ab\u03aa\3\2\2\2\u03ac\u00b1\3\2"+
- "\2\2\u03ad\u03ae\7_\2\2\u03ae\u00b3\3\2\2\2\u03af\u03b0\5\u00ceh\2\u03b0"+
- "\u00b5\3\2\2\2\u03b1\u03b2\7\62\2\2\u03b2\u03b3\5f\64\2\u03b3\u03b4\7"+
- "Q\2\2\u03b4\u00b7\3\2\2\2\u03b5\u03b6\7\63\2\2\u03b6\u03bb\5n8\2\u03b7"+
- "\u03b8\7T\2\2\u03b8\u03b9\5\u00fa~\2\u03b9\u03ba\7U\2\2\u03ba\u03bc\3"+
- "\2\2\2\u03bb\u03b7\3\2\2\2\u03bb\u03bc\3\2\2\2\u03bc\u03bd\3\2\2\2\u03bd"+
- "\u03be\7Q\2\2\u03be\u00b9\3\2\2\2\u03bf\u03c0\7\64\2\2\u03c0\u03c1\5\u00be"+
- "`\2\u03c1\u03c2\7Q\2\2\u03c2\u00bb\3\2\2\2\u03c3\u03c4\7\65\2\2\u03c4"+
- "\u03c5\5f\64\2\u03c5\u03c6\7Q\2\2\u03c6\u00bd\3\2\2\2\u03c7\u03c8\5\u00e8"+
- "u\2\u03c8\u03ca\7T\2\2\u03c9\u03cb\5\u00fa~\2\u03ca\u03c9\3\2\2\2\u03ca"+
- "\u03cb\3\2\2\2\u03cb\u03cc\3\2\2\2\u03cc\u03cd\7U\2\2\u03cd\u00bf\3\2"+
- "\2\2\u03ce\u03cf\7\66\2\2\u03cf\u03d0\5\u00c8e\2\u03d0\u03d2\7T\2\2\u03d1"+
- "\u03d3\5\u00f4{\2\u03d2\u03d1\3\2\2\2\u03d2\u03d3\3\2\2\2\u03d3\u03d4"+
- "\3\2\2\2\u03d4\u03d7\7U\2\2\u03d5\u03d6\7\67\2\2\u03d6\u03d8\5\u00c2b"+
- "\2\u03d7\u03d5\3\2\2\2\u03d7\u03d8\3\2\2\2\u03d8\u03d9\3\2\2\2\u03d9\u03da"+
- "\5\u00c4c\2\u03da\u03db\7Q\2\2\u03db\u00c1\3\2\2\2\u03dc\u03dd\5X-\2\u03dd"+
- "\u00c3\3\2\2\2\u03de\u03e0\7\6\2\2\u03df\u03e1\5\u00c6d\2\u03e0\u03df"+
- "\3\2\2\2\u03e0\u03e1\3\2\2\2\u03e1\u03ed\3\2\2\2\u03e2\u03e3\78\2\2\u03e3"+
- "\u03ee\5\u00ceh\2\u03e4\u03ee\79\2\2\u03e5\u03e6\7:\2\2\u03e6\u03e7\5"+
- "\n\6\2\u03e7\u03e9\7T\2\2\u03e8\u03ea\5\u00fa~\2\u03e9\u03e8\3\2\2\2\u03e9"+
- "\u03ea\3\2\2\2\u03ea\u03eb\3\2\2\2\u03eb\u03ec\7U\2\2\u03ec\u03ee\3\2"+
- "\2\2\u03ed\u03e2\3\2\2\2\u03ed\u03e4\3\2\2\2\u03ed\u03e5\3\2\2\2\u03ee"+
- "\u00c5\3\2\2\2\u03ef\u03f0\7;\2\2\u03f0\u00c7\3\2\2\2\u03f1\u03f2\7_\2"+
- "\2\u03f2\u00c9\3\2\2\2\u03f3\u03f4\t\6\2\2\u03f4\u03f5\7T\2\2\u03f5\u03f6"+
- "\5\u00ccg\2\u03f6\u03f7\7U\2\2\u03f7\u03f8\7Q\2\2\u03f8\u00cb\3\2\2\2"+
- "\u03f9\u03fe\7_\2\2\u03fa\u03fb\7\n\2\2\u03fb\u03fc\78\2\2\u03fc\u03fd"+
- "\7\13\2\2\u03fd\u03ff\5\u00ceh\2\u03fe\u03fa\3\2\2\2\u03fe\u03ff\3\2\2"+
- "\2\u03ff\u0414\3\2\2\2\u0400\u0401\7\n\2\2\u0401\u0402\7\b\2\2\u0402\u0403"+
- "\7\13\2\2\u0403\u0413\7_\2\2\u0404\u0405\7\n\2\2\u0405\u0406\7>\2\2\u0406"+
- "\u0407\7\13\2\2\u0407\u0413\5\u00f2z\2\u0408\u0409\7\n\2\2\u0409\u040a"+
- "\7%\2\2\u040a\u040b\7\13\2\2\u040b\u0413\5\u00eex\2\u040c\u040d\7\n\2"+
- "\2\u040d\u040e\7\36\2\2\u040e\u040f\7\13\2\2\u040f\u0413\5n8\2\u0410\u0411"+
- "\7\n\2\2\u0411\u0413\5\u00fe\u0080\2\u0412\u0400\3\2\2\2\u0412\u0404\3"+
- "\2\2\2\u0412\u0408\3\2\2\2\u0412\u040c\3\2\2\2\u0412\u0410\3\2\2\2\u0413"+
- "\u0416\3\2\2\2\u0414\u0412\3\2\2\2\u0414\u0415\3\2\2\2\u0415\u00cd\3\2"+
- "\2\2\u0416\u0414\3\2\2\2\u0417\u041a\5\u00d2j\2\u0418\u041a\5\u00d0i\2"+
- "\u0419\u0417\3\2\2\2\u0419\u0418\3\2\2\2\u041a\u00cf\3\2\2\2\u041b\u041c"+
- "\5\u00d2j\2\u041c\u041d\7?\2\2\u041d\u041e\5\u00ceh\2\u041e\u041f\7\13"+
- "\2\2\u041f\u0420\5\u00ceh\2\u0420\u00d1\3\2\2\2\u0421\u0426\5\u00d4k\2"+
- "\u0422\u0423\7@\2\2\u0423\u0425\5\u00d4k\2\u0424\u0422\3\2\2\2\u0425\u0428"+
- "\3\2\2\2\u0426\u0424\3\2\2\2\u0426\u0427\3\2\2\2\u0427\u00d3\3\2\2\2\u0428"+
- "\u0426\3\2\2\2\u0429\u042e\5\u00d6l\2\u042a\u042b\7A\2\2\u042b\u042d\5"+
- "\u00d6l\2\u042c\u042a\3\2\2\2\u042d\u0430\3\2\2\2\u042e\u042c\3\2\2\2"+
- "\u042e\u042f\3\2\2\2\u042f\u00d5\3\2\2\2\u0430\u042e\3\2\2\2\u0431\u0436"+
- "\5\u00d8m\2\u0432\u0433\7B\2\2\u0433\u0435\5\u00d8m\2\u0434\u0432\3\2"+
- "\2\2\u0435\u0438\3\2\2\2\u0436\u0434\3\2\2\2\u0436\u0437\3\2\2\2\u0437"+
- "\u00d7\3\2\2\2\u0438\u0436\3\2\2\2\u0439\u043a\7C\2\2\u043a\u043d\5\u00d8"+
- "m\2\u043b\u043d\5\u00dan\2\u043c\u0439\3\2\2\2\u043c\u043b\3\2\2\2\u043d"+
- "\u00d9\3\2\2\2\u043e\u043f\bn\1\2\u043f\u0440\5\u00dep\2\u0440\u0447\3"+
- "\2\2\2\u0441\u0442\f\3\2\2\u0442\u0443\5\u00dco\2\u0443\u0444\5\u00de"+
- "p\2\u0444\u0446\3\2\2\2\u0445\u0441\3\2\2\2\u0446\u0449\3\2\2\2\u0447"+
- "\u0445\3\2\2\2\u0447\u0448\3\2\2\2\u0448\u00db\3\2\2\2\u0449\u0447\3\2"+
- "\2\2\u044a\u044b\t\7\2\2\u044b\u00dd\3\2\2\2\u044c\u044d\bp\1\2\u044d"+
- "\u044e\5\u00e2r\2\u044e\u0455\3\2\2\2\u044f\u0450\f\3\2\2\u0450\u0451"+
- "\5\u00e0q\2\u0451\u0452\5\u00e2r\2\u0452\u0454\3\2\2\2\u0453\u044f\3\2"+
- "\2\2\u0454\u0457\3\2\2\2\u0455\u0453\3\2\2\2\u0455\u0456\3\2\2\2\u0456"+
- "\u00df\3\2\2\2\u0457\u0455\3\2\2\2\u0458\u0459\t\b\2\2\u0459\u00e1\3\2"+
- "\2\2\u045a\u045b\br\1\2\u045b\u045c\5\u00e6t\2\u045c\u0463\3\2\2\2\u045d"+
- "\u045e\f\3\2\2\u045e\u045f\5\u00e4s\2\u045f\u0460\5\u00e6t\2\u0460\u0462"+
- "\3\2\2\2\u0461\u045d\3\2\2\2\u0462\u0465\3\2\2\2\u0463\u0461\3\2\2\2\u0463"+
- "\u0464\3\2\2\2\u0464\u00e3\3\2\2\2\u0465\u0463\3\2\2\2\u0466\u0467\t\t"+
- "\2\2\u0467\u00e5\3\2\2\2\u0468\u046c\5\u00e8u\2\u0469\u046a\7K\2\2\u046a"+
- "\u046c\5\u00e6t\2\u046b\u0468\3\2\2\2\u046b\u0469\3\2\2\2\u046c\u00e7"+
- "\3\2\2\2\u046d\u046e\bu\1\2\u046e\u046f\5\u00ecw\2\u046f\u048e\3\2\2\2"+
- "\u0470\u0471\f\7\2\2\u0471\u0472\7\4\2\2\u0472\u0473\7!\2\2\u0473\u0474"+
- "\7T\2\2\u0474\u0475\5X-\2\u0475\u0476\7U\2\2\u0476\u048d\3\2\2\2\u0477"+
- "\u0478\f\6\2\2\u0478\u0479\7\4\2\2\u0479\u047a\7\6\2\2\u047a\u047b\7T"+
- "\2\2\u047b\u047c\5X-\2\u047c\u047d\7U\2\2\u047d\u048d\3\2\2\2\u047e\u047f"+
- "\f\5\2\2\u047f\u0480\7R\2\2\u0480\u0481\5\u00ceh\2\u0481\u0482\7S\2\2"+
- "\u0482\u048d\3\2\2\2\u0483\u0484\f\4\2\2\u0484\u0486\7T\2\2\u0485\u0487"+
- "\5\u00fa~\2\u0486\u0485\3\2\2\2\u0486\u0487\3\2\2\2\u0487\u0488\3\2\2"+
- "\2\u0488\u048d\7U\2\2\u0489\u048a\f\3\2\2\u048a\u048b\7\4\2\2\u048b\u048d"+
- "\5\64\33\2\u048c\u0470\3\2\2\2\u048c\u0477\3\2\2\2\u048c\u047e\3\2\2\2"+
- "\u048c\u0483\3\2\2\2\u048c\u0489\3\2\2\2\u048d\u0490\3\2\2\2\u048e\u048c"+
- "\3\2\2\2\u048e\u048f\3\2\2\2\u048f\u00e9\3\2\2\2\u0490\u048e\3\2\2\2\u0491"+
- "\u0492\5\u00e8u\2\u0492\u0493\7\4\2\2\u0493\u0494\5\64\33\2\u0494\u00eb"+
- "\3\2\2\2\u0495\u049d\5\u00eex\2\u0496\u049d\7O\2\2\u0497\u049d\7_\2\2"+
- "\u0498\u0499\7T\2\2\u0499\u049a\5\u00ceh\2\u049a\u049b\7U\2\2\u049b\u049d"+
- "\3\2\2\2\u049c\u0495\3\2\2\2\u049c\u0496\3\2\2\2\u049c\u0497\3\2\2\2\u049c"+
- "\u0498\3\2\2\2\u049d\u00ed\3\2\2\2\u049e\u04a7\5\u0100\u0081\2\u049f\u04a7"+
- "\7Z\2\2\u04a0\u04a7\5\u0102\u0082\2\u04a1\u04a7\7^\2\2\u04a2\u04a7\7Y"+
- "\2\2\u04a3\u04a7\5.\30\2\u04a4\u04a7\5\u00f0y\2\u04a5\u04a7\5\u00f2z\2"+
- "\u04a6\u049e\3\2\2\2\u04a6\u049f\3\2\2\2\u04a6\u04a0\3\2\2\2\u04a6\u04a1"+
- "\3\2\2\2\u04a6\u04a2\3\2\2\2\u04a6\u04a3\3\2\2\2\u04a6\u04a4\3\2\2\2\u04a6"+
- "\u04a5\3\2\2\2\u04a7\u00ef\3\2\2\2\u04a8\u04a9\7R\2\2\u04a9\u04ae\5\u00ce"+
- "h\2\u04aa\u04ab\7\n\2\2\u04ab\u04ad\5\u00ceh\2\u04ac\u04aa\3\2\2\2\u04ad"+
- "\u04b0\3\2\2\2\u04ae\u04ac\3\2\2\2\u04ae\u04af\3\2\2\2\u04af\u04b1\3\2"+
- "\2\2\u04b0\u04ae\3\2\2\2\u04b1\u04b2\7S\2\2\u04b2\u00f1\3\2\2\2\u04b3"+
- "\u04b4\7>\2\2\u04b4\u04b5\7T\2\2\u04b5\u04b6\5\u00ceh\2\u04b6\u04b7\7"+
- "\n\2\2\u04b7\u04b8\5\u00ceh\2\u04b8\u04b9\7U\2\2\u04b9\u04c1\3\2\2\2\u04ba"+
- "\u04bb\7R\2\2\u04bb\u04bc\5\u00ceh\2\u04bc\u04bd\7P\2\2\u04bd\u04be\5"+
- "\u00ceh\2\u04be\u04bf\7S\2\2\u04bf\u04c1\3\2\2\2\u04c0\u04b3\3\2\2\2\u04c0"+
- "\u04ba\3\2\2\2\u04c1\u00f3\3\2\2\2\u04c2\u04c7\5\u00f6|\2\u04c3\u04c4"+
- "\7\n\2\2\u04c4\u04c6\5\u00f6|\2\u04c5\u04c3\3\2\2\2\u04c6\u04c9\3\2\2"+
- "\2\u04c7\u04c5\3\2\2\2\u04c7\u04c8\3\2\2\2\u04c8\u00f5\3\2\2\2\u04c9\u04c7"+
- "\3\2\2\2\u04ca\u04cb\5\u00f8}\2\u04cb\u04cc\7\13\2\2\u04cc\u04cf\5X-\2"+
- "\u04cd\u04ce\7\r\2\2\u04ce\u04d0\5\u0088E\2\u04cf\u04cd\3\2\2\2\u04cf"+
- "\u04d0\3\2\2\2\u04d0\u00f7\3\2\2\2\u04d1\u04d2\7_\2\2\u04d2\u00f9\3\2"+
- "\2\2\u04d3\u04d8\5\u00fc\177\2\u04d4\u04d5\7\n\2\2\u04d5\u04d7\5\u00fc"+
- "\177\2\u04d6\u04d4\3\2\2\2\u04d7\u04da\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8"+
- "\u04d9\3\2\2\2\u04d9\u04df\3\2\2\2\u04da\u04d8\3\2\2\2\u04db\u04dc\7\n"+
- "\2\2\u04dc\u04de\5\u00fe\u0080\2\u04dd\u04db\3\2\2\2\u04de\u04e1\3\2\2"+
- "\2\u04df\u04dd\3\2\2\2\u04df\u04e0\3\2\2\2\u04e0\u04eb\3\2\2\2\u04e1\u04df"+
- "\3\2\2\2\u04e2\u04e7\5\u00fe\u0080\2\u04e3\u04e4\7\n\2\2\u04e4\u04e6\5"+
- "\u00fe\u0080\2\u04e5\u04e3\3\2\2\2\u04e6\u04e9\3\2\2\2\u04e7\u04e5\3\2"+
- "\2\2\u04e7\u04e8\3\2\2\2\u04e8\u04eb\3\2\2\2\u04e9\u04e7\3\2\2\2\u04ea"+
- "\u04d3\3\2\2\2\u04ea\u04e2\3\2\2\2\u04eb\u00fb\3\2\2\2\u04ec\u04ed\5\u00ce"+
- "h\2\u04ed\u00fd\3\2\2\2\u04ee\u04ef\5\u00f8}\2\u04ef\u04f0\7\13\2\2\u04f0"+
- "\u04f1\5\u00ceh\2\u04f1\u00ff\3\2\2\2\u04f2\u04f5\7Z\2\2\u04f3\u04f5\5"+
- "\u0102\u0082\2\u04f4\u04f2\3\2\2\2\u04f4\u04f3\3\2\2\2\u04f5\u04f6\3\2"+
- "\2\2\u04f6\u04f7\7_\2\2\u04f7\u0101\3\2\2\2\u04f8\u04f9\t\n\2\2\u04f9"+
- "\u0103\3\2\2\2|\u0107\u010d\u0119\u011d\u0127\u0135\u0155\u0159\u0162"+
- "\u016e\u0174\u017f\u0188\u0193\u01a0\u01a4\u01a6\u01ae\u01b3\u01ba\u01c9"+
- "\u01cd\u01cf\u01d7\u01dc\u01e3\u01f0\u01f4\u01f6\u01fd\u01ff\u0204\u020c"+
- "\u0211\u0220\u0224\u0226\u022d\u022f\u0234\u023a\u023f\u0247\u024c\u0252"+
- "\u025d\u026b\u0271\u0277\u027e\u0283\u0295\u0299\u029f\u02a3\u02a6\u02b5"+
- "\u02be\u02d7\u02e1\u02e8\u02ef\u02f3\u02fb\u0303\u0305\u0310\u031d\u0323"+
- "\u0327\u032c\u033e\u0342\u0346\u034b\u0357\u0361\u0367\u036f\u0376\u037b"+
- "\u037e\u0386\u038a\u0391\u0396\u039b\u03a4\u03ab\u03bb\u03ca\u03d2\u03d7"+
- "\u03e0\u03e9\u03ed\u03fe\u0412\u0414\u0419\u0426\u042e\u0436\u043c\u0447"+
- "\u0455\u0463\u046b\u0486\u048c\u048e\u049c\u04a6\u04ae\u04c0\u04c7\u04cf"+
- "\u04d8\u04df\u04e7\u04ea\u04f4";
- public static final ATN _ATN =
- new ATNDeserializer().deserialize(_serializedATN.toCharArray());
- static {
- _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
- for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
- _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
- }
- }
-}
\ No newline at end of file
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2.g4 b/srunner/osc2/osc2_parser/OpenSCENARIO2.g4
deleted file mode 100644
index 0233547..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2.g4
+++ /dev/null
@@ -1,1282 +0,0 @@
-
-grammar OpenSCENARIO2;
-
-tokens { INDENT, DEDENT}
-
-
-@lexer::header{
-from antlr4.Token import CommonToken
-import re
-import importlib
-# Allow languages to extend the lexer and parser, by loading the parser dynamically
-module_path = __name__[:-5]
-language_name = __name__.split('.')[-1]
-language_name = language_name[:-5] # Remove Lexer from name
-LanguageParser = getattr(importlib.import_module('{}Parser'.format(module_path)), '{}Parser'.format(language_name))
-}
-
-@lexer::members {
-
-@property
-def tokens(self):
- try:
- return self._tokens
- except AttributeError:
- self._tokens = []
- return self._tokens
-
-@property
-def indents(self):
- try:
- return self._indents
- except AttributeError:
- self._indents = []
- return self._indents
-
-@property
-def opened(self):
- try:
- return self._opened
- except AttributeError:
- self._opened = 0
- return self._opened
-
-@opened.setter
-def opened(self, value):
- self._opened = value
-
-@property
-def lastToken(self):
- try:
- return self._lastToken
- except AttributeError:
- self._lastToken = None
- return self._lastToken
-
-@lastToken.setter
-def lastToken(self, value):
- self._lastToken = value
-
-def reset(self):
- super().reset()
- self.tokens = []
- self.indents = []
- self.opened = 0
- self.lastToken = None
-
-def emitToken(self, t):
- super().emitToken(t)
- self.tokens.append(t)
-
-def nextToken(self):
- if self._input.LA(1) == Token.EOF and self.indents:
- for i in range(len(self.tokens)-1,-1,-1):
- if self.tokens[i].type == Token.EOF:
- self.tokens.pop(i)
- self.emitToken(self.commonToken(LanguageParser.NEWLINE, '\n'))
- while self.indents:
- self.emitToken(self.createDedent())
- self.indents.pop()
- self.emitToken(self.commonToken(LanguageParser.EOF, ""))
- next = super().nextToken()
- if next.channel == Token.DEFAULT_CHANNEL:
- self.lastToken = next
- return next if not self.tokens else self.tokens.pop(0)
-
-def createDedent(self):
- dedent = self.commonToken(LanguageParser.DEDENT, "")
- dedent.line = self.lastToken.line
- return dedent
-
-def commonToken(self, type, text, indent=0):
- stop = self.getCharIndex()-1-indent
- start = (stop - len(text) + 1) if text else stop
- return CommonToken(self._tokenFactorySourcePair, type, super().DEFAULT_TOKEN_CHANNEL, start, stop)
-
-@staticmethod
-def getIndentationCount(spaces):
- count = 0
- for ch in spaces:
- if ch == '\t':
- count += 8 - (count % 8)
- else:
- count += 1
- return count
-
-def atStartOfInput(self):
- return Lexer.column.fget(self) == 0 and Lexer.line.fget(self) == 1
-
-}
-
-
-//----------------------------------------
-// Parser rules
-/*Top-Level structure*/
-osc_file
- : preludeStatement* oscDeclaration* EOF
- ;
-
-preludeStatement
- : importStatement
- ;
-
-importStatement
- : 'import' importReference NEWLINE
- | NEWLINE;
-
-importReference
- : StringLiteral
- | structuredIdentifier
- ;
-
-structuredIdentifier
- : Identifier
- | structuredIdentifier'.'Identifier
- ;
-
-oscDeclaration
- : physicalTypeDeclaration
- | unitDeclaration
- | enumDeclaration
- | structDeclaration
- | actorDeclaration
- | actionDeclaration
- | scenarioDeclaration
- | modifierDeclaration
- | typeExtension
- | globalParameterDeclaration
- | NEWLINE
- ;
-
-//----------------------------------------
-// physicalTypeDeclaration
-physicalTypeDeclaration : 'type' physicalTypeName 'is' baseUnitSpecifier NEWLINE;
-
-physicalTypeName : Identifier;
-
-baseUnitSpecifier : sIBaseUnitSpecifier;
-
-sIBaseUnitSpecifier : 'SI' OPEN_PAREN sIBaseExponentList CLOSE_PAREN;
-
-//----------------------------------------
-// unitDeclaration
-unitDeclaration : 'unit' unitName= Identifier 'of' physicalTypeName 'is' unitSpecifier NEWLINE;
-
-unitSpecifier : sIUnitSpecifier;
-
-sIUnitSpecifier : 'SI' OPEN_PAREN sIBaseExponentList (',' sIFactor)? (',' sIOffset)? CLOSE_PAREN;
-
-sIBaseExponentList : sIBaseExponent (',' sIBaseExponent)*;
-
-//sIBaseUnitName : 'kg' | 'm' | 's' | 'A' | 'K' | 'mol' | 'cd' | 'rad';
-sIBaseExponent : sIBaseUnitName = Identifier {
-unitName = $sIBaseUnitName.text
-if(not (unitName == "kg") and
- not (unitName == "m") and
- not (unitName == "s") and
- not (unitName == "A") and
- not (unitName == "K") and
- not (unitName == "mol") and
- not (unitName == "cd") and
- not (unitName == "factor") and
- not (unitName == "offset") and
- not (unitName == "rad")):
- print("unit name %s is not supported" %unitName)
- raise NoViableAltException(self)
- } ':' integerLiteral;
-
-//sIFactor : 'factor' ':' (FloatLiteral | integerLiteral);
-sIFactor : Identifier ':' (FloatLiteral | integerLiteral);
-
-//sIOffset : 'offset' ':' (FloatLiteral | integerLiteral);
-sIOffset : Identifier ':' (FloatLiteral | integerLiteral);
-
-//----------------------------------------
-// enumDeclaration
-enumDeclaration : 'enum' enumName ':' OPEN_BRACK enumMemberDecl (',' enumMemberDecl)* CLOSE_BRACK NEWLINE;
-
-enumMemberDecl : enumMemberName ('=' enumMemberValue )?;
-
-enumMemberValue: UintLiteral | HexUintLiteral;
-
-enumName : Identifier;
-
-enumMemberName : Identifier;
-
-enumValueReference : enumName '!' enumMemberName;
-
-//----------------------------------------
-inheritsCondition : OPEN_PAREN fieldName '==' (enumValueReference | BoolLiteral) CLOSE_PAREN ;
-
-//----------------------------------------
-// structDeclaration
-structDeclaration :
- 'struct' structName (structInherts)?
- ((':' NEWLINE INDENT structMemberDecl+ DEDENT) | NEWLINE);
-
-structInherts : 'inherits' structName (inheritsCondition)? ;
-
-structMemberDecl
- : eventDeclaration
- | fieldDeclaration
- | constraintDeclaration
- | methodDeclaration
- | coverageDeclaration;
-
-fieldName : Identifier;
-
-structName : Identifier;
-
-//----------------------------------------
-// actorDeclaration
-actorDeclaration :
- 'actor' actorName (actorInherts)?
- ((':' NEWLINE INDENT actorMemberDecl+ DEDENT) | NEWLINE);
-
-actorInherts : 'inherits' actorName (inheritsCondition)? ;
-
-actorMemberDecl
- : eventDeclaration
- | fieldDeclaration
- | constraintDeclaration
- | methodDeclaration
- | coverageDeclaration;
-
-actorName : Identifier;
-
-//----------------------------------------
-// scenarioDeclaration
-scenarioDeclaration
- : 'scenario' qualifiedBehaviorName (scenarioInherts)?
- ((':' NEWLINE INDENT
- (scenarioMemberDecl | behaviorSpecification )+
- DEDENT) | NEWLINE);
-
-scenarioInherts : 'inherits' qualifiedBehaviorName (inheritsCondition)? ;
-
-scenarioMemberDecl
- : eventDeclaration
- | fieldDeclaration
- | constraintDeclaration
- | methodDeclaration
- | coverageDeclaration
- | modifierInvocation;
-
-qualifiedBehaviorName : (actorName '.')? behaviorName;
-
-behaviorName : Identifier;
-
-//----------------------------------------
-// actionDeclaration
-actionDeclaration
- : 'action' qualifiedBehaviorName (actionInherts)?
- ((':' NEWLINE INDENT (scenarioMemberDecl | behaviorSpecification)+ DEDENT) | NEWLINE);
-
-actionInherts : 'inherits' qualifiedBehaviorName (inheritsCondition)? ;
-
-//----------------------------------------
-// modifierDeclaration
-modifierDeclaration
- : 'modifier' (actorName '.')? modifierName ('of' qualifiedBehaviorName)?
- ((':' NEWLINE INDENT scenarioMemberDecl+ DEDENT) | NEWLINE);
-
-modifierName : Identifier;
-
-//----------------------------------------
-// typeExtension
-typeExtension : enumTypeExtension | structuredTypeExtension;
-
-/*
-enumTypeExtension : 'extend' enumName ':' NEWLINE INDENT
- (enumMemberDecl NEWLINE)+ DEDENT;
-*/
-enumTypeExtension : 'extend' enumName ':' OPEN_BRACK enumMemberDecl (',' enumMemberDecl)* CLOSE_BRACK NEWLINE;
-
-
-structuredTypeExtension : 'extend' extendableTypeName
- ':' NEWLINE INDENT extensionMemberDecl+ DEDENT;
-
-
-extendableTypeName
- : typeName
- | qualifiedBehaviorName;
-
-extensionMemberDecl
- : structMemberDecl
- | actorMemberDecl
- | scenarioMemberDecl
- | behaviorSpecification;
-
-//----------------------------------------
-// globalParameterDeclaration
-globalParameterDeclaration : 'global' fieldName (',' fieldName)* ':' typeDeclarator ('=' defaultValue)? (parameterWithDeclaration | NEWLINE);
-
-//Type declarations
-typeDeclarator : nonAggregateTypeDeclarator | aggregateTypeDeclarator;
-
-nonAggregateTypeDeclarator : primitiveType | typeName | qualifiedBehaviorName;
-
-aggregateTypeDeclarator : listTypeDeclarator;
-
-listTypeDeclarator : 'list' 'of' nonAggregateTypeDeclarator;
-
-primitiveType : 'int' | 'uint' | 'float' | 'bool' | 'string';
-
-typeName : Identifier;
-
-// Structured type members
-
-// eventDeclaration
-eventDeclaration
- : 'event' eventName
- (OPEN_PAREN argumentListSpecification CLOSE_PAREN)?
- ('is' eventSpecification)? NEWLINE;
-
-eventSpecification
- : eventReference (( eventFieldDecl )? 'if' eventCondition) ?
- | eventCondition ;
-
-eventReference : '@' eventPath;
-eventFieldDecl : 'as' eventFieldName;
-eventFieldName : Identifier;
-eventName : Identifier;
-eventPath : (expression '.')? eventName;
-
-eventCondition
- : boolExpression
- | riseExpression
- | fallExpression
- | elapsedExpression
- | everyExpression;
-
-riseExpression : 'rise' OPEN_PAREN boolExpression CLOSE_PAREN;
-fallExpression :'fall' OPEN_PAREN boolExpression CLOSE_PAREN;
-elapsedExpression : 'elapsed' OPEN_PAREN durationExpression CLOSE_PAREN;
-
-//everyExpression : 'every' OPEN_PAREN durationExpression (',' 'offset' ':' durationExpression)? CLOSE_PAREN;
-everyExpression : 'every' OPEN_PAREN durationExpression (',' Identifier{
-offsetName = $Identifier.text
-if( not (offsetName == "offset") ):
- print("%s must be offset" %offsetName)
- raise NoViableAltException(self)
-} ':' durationExpression)? CLOSE_PAREN;
-
-boolExpression : expression;
-durationExpression : expression;
-
-// fieldDeclaration
-fieldDeclaration
- : parameterDeclaration
- | variableDeclaration;
-
-//parameter-declaration ::= field-name (',' field-name)* ':' type-declarator ['=' default-value] [parameter-with-declaration] NEWLINE
-//[improvement:] parameterWithDeclaration? NEWLINE -> (parameterWithDeclaration | NEWLINE)
-parameterDeclaration
- : fieldName (',' fieldName)* ':' typeDeclarator ('=' defaultValue)? (parameterWithDeclaration | NEWLINE);
-
-variableDeclaration
- : 'var' fieldName (',' fieldName)* ':' typeDeclarator ('=' (sampleExpression | valueExp) )? NEWLINE;
-
-sampleExpression
- : 'sample' OPEN_PAREN expression ',' eventSpecification (',' defaultValue)? CLOSE_PAREN;
-
-defaultValue : expression;
-
-parameterWithDeclaration : 'with' ':' NEWLINE INDENT
- parameterWithMember+ DEDENT;
-
-// add coverageDeclaration
-parameterWithMember : constraintDeclaration | coverageDeclaration;
-
-// constraintDeclaration
-constraintDeclaration
- : keepConstraintDeclaration | removeDefaultDeclaration;
-
-keepConstraintDeclaration
- : 'keep' OPEN_PAREN (constraintQualifier)? constraintExpression CLOSE_PAREN NEWLINE;
-
-constraintQualifier
- : 'default' | 'hard';
-
-constraintExpression : expression;
-
-removeDefaultDeclaration : 'remove_default' OPEN_PAREN parameterReference CLOSE_PAREN NEWLINE;
-
-parameterReference : fieldName | fieldAccess ;
-
-modifierInvocation : ((behaviorExpression | actorExpression) '.')? modifierName OPEN_PAREN (argumentList)? CLOSE_PAREN NEWLINE;
-
-behaviorExpression : (actorExpression '.') behaviorName;
-
-// behaviorSpecification
-behaviorSpecification : onDirective | doDirective;
-
-onDirective : 'on' eventSpecification ':' NEWLINE INDENT
- onMember+ DEDENT;
-
-onMember : callDirective | emitDirective;
-
-doDirective : 'do' doMember;
-
-doMember
- : (labelName ':')?(composition
- | behaviorInvocation
- | waitDirective
- | emitDirective
- | callDirective);
-
-// composition
-composition : compositionOperator (OPEN_PAREN argumentList? CLOSE_PAREN)?':' NEWLINE INDENT
- doMember+ DEDENT (behaviorWithDeclaration)?;
-
-compositionOperator
- : 'serial' | 'one_of' | 'parallel';
-
-behaviorInvocation
- : (actorExpression '.')? behaviorName OPEN_PAREN (argumentList)? CLOSE_PAREN (behaviorWithDeclaration | NEWLINE);
-
-behaviorWithDeclaration : 'with' ':' NEWLINE INDENT
- behaviorWithMember+ DEDENT;
-
-behaviorWithMember : constraintDeclaration
- | modifierInvocation
- | untilDirective;
-
-labelName : Identifier;
-
-actorExpression
- : actorName;
-
-waitDirective
- : 'wait' eventSpecification NEWLINE;
-
-emitDirective : 'emit' eventName (OPEN_PAREN argumentList CLOSE_PAREN)? NEWLINE;
-
-callDirective : 'call' methodInvocation NEWLINE;
-
-untilDirective : 'until' eventSpecification NEWLINE;
-
-methodInvocation : postfixExp OPEN_PAREN (argumentList)? CLOSE_PAREN;
-
-methodDeclaration : 'def' methodName OPEN_PAREN (argumentListSpecification)? CLOSE_PAREN ('->' returnType)? methodImplementation NEWLINE;
-
-returnType : typeDeclarator;
-
-methodImplementation
- : 'is' (methodQualifier)? ('expression' expression
- | 'undefined'
- | 'external' structuredIdentifier OPEN_PAREN (argumentList)? CLOSE_PAREN);
-
-methodQualifier : 'only';
-
-methodName : Identifier;
-
-coverageDeclaration: coverDeclaration | recordDeclaration ;
-
-coverDeclaration : 'cover' OPEN_PAREN targetName? coverageArgumentList* CLOSE_PAREN NEWLINE;
-
-recordDeclaration : 'record' OPEN_PAREN targetName? coverageArgumentList* CLOSE_PAREN NEWLINE;
-
-coverageArgumentList : (',' 'expression' ':' expression) #coverageExpression
- | (',' 'unit' ':' unitName = Identifier) #coverageUnit
- | (',' 'range' ':' rangeConstructor) #coverageRange
- | (',' 'every' ':' valueExp) #coverageEvery
- | (',' 'event' ':' eventName) #coverageEvent
- | (',' namedArgument) #coverageNameArgument
- ;
-
-targetName : Identifier ;
-
-//Expressions
-expression
- : implication
- | ternaryOpExp;
-
-ternaryOpExp
- : implication '?' expression ':' expression;
-
-implication : disjunction ('=>' disjunction)*;
-disjunction : conjunction ('or' conjunction)*;
-conjunction : inversion ('and' inversion)*;
-inversion
- : 'not' inversion
- | relation;
-
-relation
- : sum #sumExp
- | relation relationalOp sum #relationExp;
-
-relationalOp : '==' | '!=' | '<' | '<=' | '>' | '>=' | 'in';
-
-sum
- : term #termExp
- | sum additiveOp term #additiveExp;
-
-additiveOp
- : '+'
- | '-';
-
-term
- : factor #factorExp
- | term multiplicativeOp factor #multiplicativeExp;
-
-multiplicativeOp
- : '*'
- | '/'
- | '%';
-
-factor
- : postfixExp
- | '-' factor;
-
-postfixExp
- : primaryExp #primaryExpression
- | postfixExp '.' 'as' OPEN_PAREN typeDeclarator CLOSE_PAREN #castExpression
- | postfixExp '.' 'is' OPEN_PAREN typeDeclarator CLOSE_PAREN #typeTestExpression
- | postfixExp OPEN_BRACK expression CLOSE_BRACK #elementAccessExpression
- | postfixExp OPEN_PAREN (argumentList)? CLOSE_PAREN #functionApplicationExpression
- | postfixExp '.' fieldName #fieldAccessExpression ;
-
-fieldAccess : postfixExp '.' fieldName ;
-
-primaryExp
- : valueExp
- | 'it'
- | Identifier
- | OPEN_PAREN expression CLOSE_PAREN;
-
-valueExp
- : physicalLiteral
- | FloatLiteral
- | integerLiteral
- | BoolLiteral
- | StringLiteral
- | identifierReference
- | enumValueReference
- | listConstructor
- | rangeConstructor;
-
-listConstructor : OPEN_BRACK expression (',' expression)* CLOSE_BRACK;
-rangeConstructor
- : 'range' OPEN_PAREN expression ',' expression CLOSE_PAREN
- | OPEN_BRACK expression '..' expression CLOSE_BRACK;
-
-identifierReference : (fieldName '.')* fieldName ;
-//Common productions
-argumentListSpecification : argumentSpecification (',' argumentSpecification)*;
-
-argumentSpecification : argumentName ':' typeDeclarator ('=' defaultValue)?;
-
-argumentName : Identifier;
-
-argumentList
- : positionalArgument (',' positionalArgument)* (',' namedArgument)*
- | namedArgument (',' namedArgument)*;
-
-positionalArgument : expression;
-namedArgument : argumentName ':' expression;
-
-physicalLiteral : (FloatLiteral | integerLiteral) unitName= Identifier;
-
-integerLiteral : UintLiteral | HexUintLiteral | IntLiteral;
-
-//----------------------------------------
-// Lexer rules
-
-NEWLINE
- : ( {self.atStartOfInput()}? SPACES
- | ( '\r'? '\n' | '\r' | '\f' ) SPACES?
- )
- {
-tempt = Lexer.text.fget(self)
-newLine = re.sub("[^\r\n\f]+", "", tempt)
-spaces = re.sub("[\r\n\f]+", "", tempt)
-la_char = ""
-try:
- la = self._input.LA(1)
- la_char = chr(la) # Python does not compare char to ints directly
-except ValueError: # End of file
- pass
-# Strip newlines inside open clauses except if we are near EOF. We keep NEWLINEs near EOF to
-# satisfy the final newline needed by the single_put rule used by the REPL.
-try:
- nextnext_la = self._input.LA(2)
- nextnext_la_char = chr(nextnext_la)
-except ValueError:
- nextnext_eof = True
-else:
- nextnext_eof = False
-if self.opened > 0 or nextnext_eof is False and (la_char == '\r' or la_char == '\n' or la_char == '\f' or la_char == '#'):
- self.skip()
-else:
- indent = self.getIndentationCount(spaces)
- previous = self.indents[-1] if self.indents else 0
- self.emitToken(self.commonToken(self.NEWLINE, newLine, indent=indent)) # NEWLINE is actually the '\n' char
- if indent == previous:
- self.skip()
- elif indent > previous:
- self.indents.append(indent)
- self.emitToken(self.commonToken(LanguageParser.INDENT, spaces))
- else:
- while self.indents and self.indents[-1] > indent:
- self.emitToken(self.createDedent())
- self.indents.pop()
- }
- ;
-
-OPEN_BRACK : '[' {self.opened += 1} ;
-CLOSE_BRACK : ']' {self.opened -= 1} ;
-OPEN_PAREN : '(' {self.opened += 1} ;
-CLOSE_PAREN : ')' {self.opened -= 1} ;
-
-
-SKIP_
- : (SPACES | LINE_JOINING)
- ->skip
- ;
-
- fragment
- SPACES
- : [ \t]+
- ;
-
-fragment LINE_JOINING
- : '\\' SPACES? '\r'? '\n'
- ;
-
-fragment
-RN
- : '\r'? '\n'
- ;
-
-BLOCK_COMMENT
- : '/*' .*? '*/'
- -> skip
- ;
-
-LINE_COMMENT
- : '#' ~[\r\n\f]*
- -> skip
- ;
-
-StringLiteral
- : Shortstring
- | Longstring
- ;
-
-fragment
-Shortstring
- : ('"' ShortstringElem* '"') | ('\'' ShortstringElem* '\'');
-
-
-fragment
-ShortstringElem
- : ShortstringChar | StringEscapeSeq;
-
-fragment
-ShortstringChar
- : ~[\\'"\r\n];
-
-
-fragment
-Longstring
- : ('"""' LongstringElem* '"""') | ('\'\'\'' LongstringElem* '\'\'\'');
-
-fragment
-LongstringElem : LongstringChar | StringEscapeSeq;
-
-fragment
-LongstringChar : ~'\\';
-
-fragment
-StringEscapeSeq
- : '\\'.
- | '\\' RN // [improvement:] consider: '\r'? '\n'
- ;
-
-
-FloatLiteral : [+-]? Digit* '.' Digit+ ([eE] [+-]? Digit+)?;
-
-UintLiteral : Digit+;
-
-HexUintLiteral : '0x' HexDigit+;
-
-IntLiteral : '-' Digit+;
-
-BoolLiteral :
- 'true' | 'false';
-
-
-/*
-where `id-start-char` matches all characters of the following Unicode character categories:
-
-* Ll -- Lowercase Letter
-* Lm -- Modifier Letter
-* Lo -- Other Letter
-* Lt -- Titlecase Letter
-* Lu -- Uppercase Letter
-* Nl -- Letter Number
-
-It also matches the underscore character `_` (U+005F).
-
-`id-char` matches all characters that `id-start-char` matches, and additionally all characters of the following Unicode character categories:
-
-* Mc -- Spacing Combining Mark
-* Mn -- Nonspacing Mark
-* Nd -- Decimal Number
-* Pc -- Connector Punctuations
-
-`non-vertical-line-char` matches all Unicode characters, except the vertical line `|` (U+007C) character.
-*/
-Identifier
- : IdStartChar (IdChar)*
- | '|' NonVerticalLineChar+ '|'
- ;
-
-fragment
-NonVerticalLineChar : ~[\u007C];
-
-fragment
-Digit
- : [0-9]
- ;
-
-fragment
-HexDigit
- : [0-9A-Fa-f]
- ;
-
-/// All characters in general categories Lu, Ll, Lt, Lm, Lo, Nl, the underscore, and [improvement:]characters with the Other_ID_Start property
-fragment IdStartChar:
- '_'
- | [A-Z]
- | [a-z]
- | '\u00AA'
- | '\u00B5'
- | '\u00BA'
- | [\u00C0-\u00D6]
- | [\u00D8-\u00F6]
- | [\u00F8-\u01BA]
- | '\u01BB'
- | [\u01BC-\u01BF]
- | [\u01C0-\u01C3]
- | [\u01C4-\u0241]
- | [\u0250-\u02AF]
- | [\u02B0-\u02C1]
- | [\u02C6-\u02D1]
- | [\u02E0-\u02E4]
- | '\u02EE'
- | '\u037A'
- | '\u0386'
- | [\u0388-\u038A]
- | '\u038C'
- | [\u038E-\u03A1]
- | [\u03A3-\u03CE]
- | [\u03D0-\u03F5]
- | [\u03F7-\u0481]
- | [\u048A-\u04CE]
- | [\u04D0-\u04F9]
- | [\u0500-\u050F]
- | [\u0531-\u0556]
- | '\u0559'
- | [\u0561-\u0587]
- | [\u05D0-\u05EA]
- | [\u05F0-\u05F2]
- | [\u0621-\u063A]
- | '\u0640'
- | [\u0641-\u064A]
- | [\u066E-\u066F]
- | [\u0671-\u06D3]
- | '\u06D5'
- | [\u06E5-\u06E6]
- | [\u06EE-\u06EF]
- | [\u06FA-\u06FC]
- | '\u06FF'
- | '\u0710'
- | [\u0712-\u072F]
- | [\u074D-\u076D]
- | [\u0780-\u07A5]
- | '\u07B1'
- | [\u0904-\u0939]
- | '\u093D'
- | '\u0950'
- | [\u0958-\u0961]
- | '\u097D'
- | [\u0985-\u098C]
- | [\u098F-\u0990]
- | [\u0993-\u09A8]
- | [\u09AA-\u09B0]
- | '\u09B2'
- | [\u09B6-\u09B9]
- | '\u09BD'
- | '\u09CE'
- | [\u09DC-\u09DD]
- | [\u09DF-\u09E1]
- | [\u09F0-\u09F1]
- | [\u0A05-\u0A0A]
- | [\u0A0F-\u0A10]
- | [\u0A13-\u0A28]
- | [\u0A2A-\u0A30]
- | [\u0A32-\u0A33]
- | [\u0A35-\u0A36]
- | [\u0A38-\u0A39]
- | [\u0A59-\u0A5C]
- | '\u0A5E'
- | [\u0A72-\u0A74]
- | [\u0A85-\u0A8D]
- | [\u0A8F-\u0A91]
- | [\u0A93-\u0AA8]
- | [\u0AAA-\u0AB0]
- | [\u0AB2-\u0AB3]
- | [\u0AB5-\u0AB9]
- | '\u0ABD'
- | '\u0AD0'
- | [\u0AE0-\u0AE1]
- | [\u0B05-\u0B0C]
- | [\u0B0F-\u0B10]
- | [\u0B13-\u0B28]
- | [\u0B2A-\u0B30]
- | [\u0B32-\u0B33]
- | [\u0B35-\u0B39]
- | '\u0B3D'
- | [\u0B5C-\u0B5D]
- | [\u0B5F-\u0B61]
- | '\u0B71'
- | '\u0B83'
- | [\u0B85-\u0B8A]
- | [\u0B8E-\u0B90]
- | [\u0B92-\u0B95]
- | [\u0B99-\u0B9A]
- | '\u0B9C'
- | [\u0B9E-\u0B9F]
- | [\u0BA3-\u0BA4]
- | [\u0BA8-\u0BAA]
- | [\u0BAE-\u0BB9]
- | [\u0C05-\u0C0C]
- | [\u0C0E-\u0C10]
- | [\u0C12-\u0C28]
- | [\u0C2A-\u0C33]
- | [\u0C35-\u0C39]
- | [\u0C60-\u0C61]
- | [\u0C85-\u0C8C]
- | [\u0C8E-\u0C90]
- | [\u0C92-\u0CA8]
- | [\u0CAA-\u0CB3]
- | [\u0CB5-\u0CB9]
- | '\u0CBD'
- | '\u0CDE'
- | [\u0CE0-\u0CE1]
- | [\u0D05-\u0D0C]
- | [\u0D0E-\u0D10]
- | [\u0D12-\u0D28]
- | [\u0D2A-\u0D39]
- | [\u0D60-\u0D61]
- | [\u0D85-\u0D96]
- | [\u0D9A-\u0DB1]
- | [\u0DB3-\u0DBB]
- | '\u0DBD'
- | [\u0DC0-\u0DC6]
- | [\u0E01-\u0E30]
- | [\u0E32-\u0E33]
- | [\u0E40-\u0E45]
- | '\u0E46'
- | [\u0E81-\u0E82]
- | '\u0E84'
- | [\u0E87-\u0E88]
- | '\u0E8A'
- | '\u0E8D'
- | [\u0E94-\u0E97]
- | [\u0E99-\u0E9F]
- | [\u0EA1-\u0EA3]
- | '\u0EA5'
- | '\u0EA7'
- | [\u0EAA-\u0EAB]
- | [\u0EAD-\u0EB0]
- | [\u0EB2-\u0EB3]
- | '\u0EBD'
- | [\u0EC0-\u0EC4]
- | '\u0EC6'
- | [\u0EDC-\u0EDD]
- | '\u0F00'
- | [\u0F40-\u0F47]
- | [\u0F49-\u0F6A]
- | [\u0F88-\u0F8B]
- | [\u1000-\u1021]
- | [\u1023-\u1027]
- | [\u1029-\u102A]
- | [\u1050-\u1055]
- | [\u10A0-\u10C5]
- | [\u10D0-\u10FA]
- | '\u10FC'
- | [\u1100-\u1159]
- | [\u115F-\u11A2]
- | [\u11A8-\u11F9]
- | [\u1200-\u1248]
- | [\u124A-\u124D]
- | [\u1250-\u1256]
- | '\u1258'
- | [\u125A-\u125D]
- | [\u1260-\u1288]
- | [\u128A-\u128D]
- | [\u1290-\u12B0]
- | [\u12B2-\u12B5]
- | [\u12B8-\u12BE]
- | '\u12C0'
- | [\u12C2-\u12C5]
- | [\u12C8-\u12D6]
- | [\u12D8-\u1310]
- | [\u1312-\u1315]
- | [\u1318-\u135A]
- | [\u1380-\u138F]
- | [\u13A0-\u13F4]
- | [\u1401-\u166C]
- | [\u166F-\u1676]
- | [\u1681-\u169A]
- | [\u16A0-\u16EA]
- | [\u16EE-\u16F0]
- | [\u1700-\u170C]
- | [\u170E-\u1711]
- | [\u1720-\u1731]
- | [\u1740-\u1751]
- | [\u1760-\u176C]
- | [\u176E-\u1770]
- | [\u1780-\u17B3]
- | '\u17D7'
- | '\u17DC'
- | [\u1820-\u1842]
- | '\u1843'
- | [\u1844-\u1877]
- | [\u1880-\u18A8]
- | [\u1900-\u191C]
- | [\u1950-\u196D]
- | [\u1970-\u1974]
- | [\u1980-\u19A9]
- | [\u19C1-\u19C7]
- | [\u1A00-\u1A16]
- | [\u1D00-\u1D2B]
- | [\u1D2C-\u1D61]
- | [\u1D62-\u1D77]
- | '\u1D78'
- | [\u1D79-\u1D9A]
- | [\u1D9B-\u1DBF]
- | [\u1E00-\u1E9B]
- | [\u1EA0-\u1EF9]
- | [\u1F00-\u1F15]
- | [\u1F18-\u1F1D]
- | [\u1F20-\u1F45]
- | [\u1F48-\u1F4D]
- | [\u1F50-\u1F57]
- | '\u1F59'
- | '\u1F5B'
- | '\u1F5D'
- | [\u1F5F-\u1F7D]
- | [\u1F80-\u1FB4]
- | [\u1FB6-\u1FBC]
- | '\u1FBE'
- | [\u1FC2-\u1FC4]
- | [\u1FC6-\u1FCC]
- | [\u1FD0-\u1FD3]
- | [\u1FD6-\u1FDB]
- | [\u1FE0-\u1FEC]
- | [\u1FF2-\u1FF4]
- | [\u1FF6-\u1FFC]
- | '\u2071'
- | '\u207F'
- | [\u2090-\u2094]
- | '\u2102'
- | '\u2107'
- | [\u210A-\u2113]
- | '\u2115'
- | '\u2118'
- | [\u2119-\u211D]
- | '\u2124'
- | '\u2126'
- | '\u2128'
- | [\u212A-\u212D]
- | '\u212E'
- | [\u212F-\u2131]
- | [\u2133-\u2134]
- | [\u2135-\u2138]
- | '\u2139'
- | [\u213C-\u213F]
- | [\u2145-\u2149]
- | [\u2160-\u2183]
- | [\u2C00-\u2C2E]
- | [\u2C30-\u2C5E]
- | [\u2C80-\u2CE4]
- | [\u2D00-\u2D25]
- | [\u2D30-\u2D65]
- | '\u2D6F'
- | [\u2D80-\u2D96]
- | [\u2DA0-\u2DA6]
- | [\u2DA8-\u2DAE]
- | [\u2DB0-\u2DB6]
- | [\u2DB8-\u2DBE]
- | [\u2DC0-\u2DC6]
- | [\u2DC8-\u2DCE]
- | [\u2DD0-\u2DD6]
- | [\u2DD8-\u2DDE]
- | '\u3005'
- | '\u3006'
- | '\u3007'
- | [\u3021-\u3029]
- | [\u3031-\u3035]
- | [\u3038-\u303A]
- | '\u303B'
- | '\u303C'
- | [\u3041-\u3096]
- | [\u309B-\u309C]
- | [\u309D-\u309E]
- | '\u309F'
- | [\u30A1-\u30FA]
- | [\u30FC-\u30FE]
- | '\u30FF'
- | [\u3105-\u312C]
- | [\u3131-\u318E]
- | [\u31A0-\u31B7]
- | [\u31F0-\u31FF]
- | [\u3400-\u4DB5]
- | [\u4E00-\u9FBB]
- | [\uA000-\uA014]
- | '\uA015'
- | [\uA016-\uA48C]
- | [\uA800-\uA801]
- | [\uA803-\uA805]
- | [\uA807-\uA80A]
- | [\uA80C-\uA822]
- | [\uAC00-\uD7A3]
- | [\uF900-\uFA2D]
- | [\uFA30-\uFA6A]
- | [\uFA70-\uFAD9]
- | [\uFB00-\uFB06]
- | [\uFB13-\uFB17]
- | '\uFB1D'
- | [\uFB1F-\uFB28]
- | [\uFB2A-\uFB36]
- | [\uFB38-\uFB3C]
- | '\uFB3E'
- | [\uFB40-\uFB41]
- | [\uFB43-\uFB44]
- | [\uFB46-\uFBB1]
- | [\uFBD3-\uFD3D]
- | [\uFD50-\uFD8F]
- | [\uFD92-\uFDC7]
- | [\uFDF0-\uFDFB]
- | [\uFE70-\uFE74]
- | [\uFE76-\uFEFC]
- | [\uFF21-\uFF3A]
- | [\uFF41-\uFF5A]
- | [\uFF66-\uFF6F]
- | '\uFF70'
- | [\uFF71-\uFF9D]
- | [\uFF9E-\uFF9F]
- | [\uFFA0-\uFFBE]
- | [\uFFC2-\uFFC7]
- | [\uFFCA-\uFFCF]
- | [\uFFD2-\uFFD7]
- | [\uFFDA-\uFFDC];
-
-/// id_continue ::=
-fragment IdChar:
- IdStartChar
- | [0-9]
- | [\u0300-\u036F]
- | [\u0483-\u0486]
- | [\u0591-\u05B9]
- | [\u05BB-\u05BD]
- | '\u05BF'
- | [\u05C1-\u05C2]
- | [\u05C4-\u05C5]
- | '\u05C7'
- | [\u0610-\u0615]
- | [\u064B-\u065E]
- | [\u0660-\u0669]
- | '\u0670'
- | [\u06D6-\u06DC]
- | [\u06DF-\u06E4]
- | [\u06E7-\u06E8]
- | [\u06EA-\u06ED]
- | [\u06F0-\u06F9]
- | '\u0711'
- | [\u0730-\u074A]
- | [\u07A6-\u07B0]
- | [\u0901-\u0902]
- | '\u0903'
- | '\u093C'
- | [\u093E-\u0940]
- | [\u0941-\u0948]
- | [\u0949-\u094C]
- | '\u094D'
- | [\u0951-\u0954]
- | [\u0962-\u0963]
- | [\u0966-\u096F]
- | '\u0981'
- | [\u0982-\u0983]
- | '\u09BC'
- | [\u09BE-\u09C0]
- | [\u09C1-\u09C4]
- | [\u09C7-\u09C8]
- | [\u09CB-\u09CC]
- | '\u09CD'
- | '\u09D7'
- | [\u09E2-\u09E3]
- | [\u09E6-\u09EF]
- | [\u0A01-\u0A02]
- | '\u0A03'
- | '\u0A3C'
- | [\u0A3E-\u0A40]
- | [\u0A41-\u0A42]
- | [\u0A47-\u0A48]
- | [\u0A4B-\u0A4D]
- | [\u0A66-\u0A6F]
- | [\u0A70-\u0A71]
- | [\u0A81-\u0A82]
- | '\u0A83'
- | '\u0ABC'
- | [\u0ABE-\u0AC0]
- | [\u0AC1-\u0AC5]
- | [\u0AC7-\u0AC8]
- | '\u0AC9'
- | [\u0ACB-\u0ACC]
- | '\u0ACD'
- | [\u0AE2-\u0AE3]
- | [\u0AE6-\u0AEF]
- | '\u0B01'
- | [\u0B02-\u0B03]
- | '\u0B3C'
- | '\u0B3E'
- | '\u0B3F'
- | '\u0B40'
- | [\u0B41-\u0B43]
- | [\u0B47-\u0B48]
- | [\u0B4B-\u0B4C]
- | '\u0B4D'
- | '\u0B56'
- | '\u0B57'
- | [\u0B66-\u0B6F]
- | '\u0B82'
- | [\u0BBE-\u0BBF]
- | '\u0BC0'
- | [\u0BC1-\u0BC2]
- | [\u0BC6-\u0BC8]
- | [\u0BCA-\u0BCC]
- | '\u0BCD'
- | '\u0BD7'
- | [\u0BE6-\u0BEF]
- | [\u0C01-\u0C03]
- | [\u0C3E-\u0C40]
- | [\u0C41-\u0C44]
- | [\u0C46-\u0C48]
- | [\u0C4A-\u0C4D]
- | [\u0C55-\u0C56]
- | [\u0C66-\u0C6F]
- | [\u0C82-\u0C83]
- | '\u0CBC'
- | '\u0CBE'
- | '\u0CBF'
- | [\u0CC0-\u0CC4]
- | '\u0CC6'
- | [\u0CC7-\u0CC8]
- | [\u0CCA-\u0CCB]
- | [\u0CCC-\u0CCD]
- | [\u0CD5-\u0CD6]
- | [\u0CE6-\u0CEF]
- | [\u0D02-\u0D03]
- | [\u0D3E-\u0D40]
- | [\u0D41-\u0D43]
- | [\u0D46-\u0D48]
- | [\u0D4A-\u0D4C]
- | '\u0D4D'
- | '\u0D57'
- | [\u0D66-\u0D6F]
- | [\u0D82-\u0D83]
- | '\u0DCA'
- | [\u0DCF-\u0DD1]
- | [\u0DD2-\u0DD4]
- | '\u0DD6'
- | [\u0DD8-\u0DDF]
- | [\u0DF2-\u0DF3]
- | '\u0E31'
- | [\u0E34-\u0E3A]
- | [\u0E47-\u0E4E]
- | [\u0E50-\u0E59]
- | '\u0EB1'
- | [\u0EB4-\u0EB9]
- | [\u0EBB-\u0EBC]
- | [\u0EC8-\u0ECD]
- | [\u0ED0-\u0ED9]
- | [\u0F18-\u0F19]
- | [\u0F20-\u0F29]
- | '\u0F35'
- | '\u0F37'
- | '\u0F39'
- | [\u0F3E-\u0F3F]
- | [\u0F71-\u0F7E]
- | '\u0F7F'
- | [\u0F80-\u0F84]
- | [\u0F86-\u0F87]
- | [\u0F90-\u0F97]
- | [\u0F99-\u0FBC]
- | '\u0FC6'
- | '\u102C'
- | [\u102D-\u1030]
- | '\u1031'
- | '\u1032'
- | [\u1036-\u1037]
- | '\u1038'
- | '\u1039'
- | [\u1040-\u1049]
- | [\u1056-\u1057]
- | [\u1058-\u1059]
- | '\u135F'
- | [\u1369-\u1371]
- | [\u1712-\u1714]
- | [\u1732-\u1734]
- | [\u1752-\u1753]
- | [\u1772-\u1773]
- | '\u17B6'
- | [\u17B7-\u17BD]
- | [\u17BE-\u17C5]
- | '\u17C6'
- | [\u17C7-\u17C8]
- | [\u17C9-\u17D3]
- | '\u17DD'
- | [\u17E0-\u17E9]
- | [\u180B-\u180D]
- | [\u1810-\u1819]
- | '\u18A9'
- | [\u1920-\u1922]
- | [\u1923-\u1926]
- | [\u1927-\u1928]
- | [\u1929-\u192B]
- | [\u1930-\u1931]
- | '\u1932'
- | [\u1933-\u1938]
- | [\u1939-\u193B]
- | [\u1946-\u194F]
- | [\u19B0-\u19C0]
- | [\u19C8-\u19C9]
- | [\u19D0-\u19D9]
- | [\u1A17-\u1A18]
- | [\u1A19-\u1A1B]
- | [\u1DC0-\u1DC3]
- | [\u203F-\u2040]
- | '\u2054'
- | [\u20D0-\u20DC]
- | '\u20E1'
- | [\u20E5-\u20EB]
- | [\u302A-\u302F]
- | [\u3099-\u309A]
- | '\uA802'
- | '\uA806'
- | '\uA80B'
- | [\uA823-\uA824]
- | [\uA825-\uA826]
- | '\uA827'
- | '\uFB1E'
- | [\uFE00-\uFE0F]
- | [\uFE20-\uFE23]
- | [\uFE33-\uFE34]
- | [\uFE4D-\uFE4F]
- | [\uFF10-\uFF19]
- | '\uFF3F';
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2.interp b/srunner/osc2/osc2_parser/OpenSCENARIO2.interp
deleted file mode 100644
index 9e26713..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2.interp
+++ /dev/null
@@ -1,339 +0,0 @@
-token literal names:
-null
-'import'
-'.'
-'type'
-'is'
-'SI'
-'unit'
-'of'
-','
-':'
-'enum'
-'='
-'!'
-'=='
-'struct'
-'inherits'
-'actor'
-'scenario'
-'action'
-'modifier'
-'extend'
-'global'
-'list'
-'int'
-'uint'
-'float'
-'bool'
-'string'
-'event'
-'if'
-'@'
-'as'
-'rise'
-'fall'
-'elapsed'
-'every'
-'var'
-'sample'
-'with'
-'keep'
-'default'
-'hard'
-'remove_default'
-'on'
-'do'
-'serial'
-'one_of'
-'parallel'
-'wait'
-'emit'
-'call'
-'until'
-'def'
-'->'
-'expression'
-'undefined'
-'external'
-'only'
-'cover'
-'record'
-'range'
-'?'
-'=>'
-'or'
-'and'
-'not'
-'!='
-'<'
-'<='
-'>'
-'>='
-'in'
-'+'
-'-'
-'*'
-'/'
-'%'
-'it'
-'..'
-null
-'['
-']'
-'('
-')'
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-
-token symbolic names:
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-NEWLINE
-OPEN_BRACK
-CLOSE_BRACK
-OPEN_PAREN
-CLOSE_PAREN
-SKIP_
-BLOCK_COMMENT
-LINE_COMMENT
-StringLiteral
-FloatLiteral
-UintLiteral
-HexUintLiteral
-IntLiteral
-BoolLiteral
-Identifier
-INDENT
-DEDENT
-
-rule names:
-osc_file
-preludeStatement
-importStatement
-importReference
-structuredIdentifier
-oscDeclaration
-physicalTypeDeclaration
-physicalTypeName
-baseUnitSpecifier
-sIBaseUnitSpecifier
-unitDeclaration
-unitSpecifier
-sIUnitSpecifier
-sIBaseExponentList
-sIBaseExponent
-sIFactor
-sIOffset
-enumDeclaration
-enumMemberDecl
-enumMemberValue
-enumName
-enumMemberName
-enumValueReference
-inheritsCondition
-structDeclaration
-structInherts
-structMemberDecl
-fieldName
-structName
-actorDeclaration
-actorInherts
-actorMemberDecl
-actorName
-scenarioDeclaration
-scenarioInherts
-scenarioMemberDecl
-qualifiedBehaviorName
-behaviorName
-actionDeclaration
-actionInherts
-modifierDeclaration
-modifierName
-typeExtension
-enumTypeExtension
-structuredTypeExtension
-extendableTypeName
-extensionMemberDecl
-globalParameterDeclaration
-typeDeclarator
-nonAggregateTypeDeclarator
-aggregateTypeDeclarator
-listTypeDeclarator
-primitiveType
-typeName
-eventDeclaration
-eventSpecification
-eventReference
-eventFieldDecl
-eventFieldName
-eventName
-eventPath
-eventCondition
-riseExpression
-fallExpression
-elapsedExpression
-everyExpression
-boolExpression
-durationExpression
-fieldDeclaration
-parameterDeclaration
-variableDeclaration
-sampleExpression
-defaultValue
-parameterWithDeclaration
-parameterWithMember
-constraintDeclaration
-keepConstraintDeclaration
-constraintQualifier
-constraintExpression
-removeDefaultDeclaration
-parameterReference
-modifierInvocation
-behaviorExpression
-behaviorSpecification
-onDirective
-onMember
-doDirective
-doMember
-composition
-compositionOperator
-behaviorInvocation
-behaviorWithDeclaration
-behaviorWithMember
-labelName
-actorExpression
-waitDirective
-emitDirective
-callDirective
-untilDirective
-methodInvocation
-methodDeclaration
-returnType
-methodImplementation
-methodQualifier
-methodName
-coverageDeclaration
-coverDeclaration
-recordDeclaration
-coverageArgumentList
-targetName
-expression
-ternaryOpExp
-implication
-disjunction
-conjunction
-inversion
-relation
-relationalOp
-sum
-additiveOp
-term
-multiplicativeOp
-factor
-postfixExp
-fieldAccess
-primaryExp
-valueExp
-listConstructor
-rangeConstructor
-identifierReference
-argumentListSpecification
-argumentSpecification
-argumentName
-argumentList
-positionalArgument
-namedArgument
-physicalLiteral
-integerLiteral
-
-
-atn:
-[4, 1, 95, 1318, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 1, 0, 5, 0, 278, 8, 0, 10, 0, 12, 0, 281, 9, 0, 1, 0, 5, 0, 284, 8, 0, 10, 0, 12, 0, 287, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 298, 8, 2, 1, 3, 1, 3, 3, 3, 302, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 5, 4, 310, 8, 4, 10, 4, 12, 4, 313, 9, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 326, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 358, 8, 12, 1, 12, 1, 12, 3, 12, 362, 8, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 369, 8, 13, 10, 13, 12, 13, 372, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 383, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 389, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 398, 8, 17, 10, 17, 12, 17, 401, 9, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 3, 18, 409, 8, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 426, 8, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 3, 24, 433, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 4, 24, 439, 8, 24, 11, 24, 12, 24, 440, 1, 24, 1, 24, 1, 24, 3, 24, 446, 8, 24, 1, 25, 1, 25, 1, 25, 3, 25, 451, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 458, 8, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 3, 29, 467, 8, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 473, 8, 29, 11, 29, 12, 29, 474, 1, 29, 1, 29, 1, 29, 3, 29, 480, 8, 29, 1, 30, 1, 30, 1, 30, 3, 30, 485, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 492, 8, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 3, 33, 499, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 4, 33, 506, 8, 33, 11, 33, 12, 33, 507, 1, 33, 1, 33, 1, 33, 3, 33, 513, 8, 33, 1, 34, 1, 34, 1, 34, 3, 34, 518, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 526, 8, 35, 1, 36, 1, 36, 1, 36, 3, 36, 531, 8, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 3, 38, 540, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 4, 38, 547, 8, 38, 11, 38, 12, 38, 548, 1, 38, 1, 38, 1, 38, 3, 38, 554, 8, 38, 1, 39, 1, 39, 1, 39, 3, 39, 559, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 565, 8, 40, 1, 40, 1, 40, 1, 40, 3, 40, 570, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 4, 40, 576, 8, 40, 11, 40, 12, 40, 577, 1, 40, 1, 40, 1, 40, 3, 40, 583, 8, 40, 1, 41, 1, 41, 1, 42, 1, 42, 3, 42, 589, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43, 598, 8, 43, 10, 43, 12, 43, 601, 9, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 612, 8, 44, 11, 44, 12, 44, 613, 1, 44, 1, 44, 1, 45, 1, 45, 3, 45, 620, 8, 45, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 626, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 632, 8, 47, 10, 47, 12, 47, 635, 9, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 641, 8, 47, 1, 47, 1, 47, 3, 47, 645, 8, 47, 1, 48, 1, 48, 3, 48, 649, 8, 48, 1, 49, 1, 49, 1, 49, 3, 49, 654, 8, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 3, 54, 672, 8, 54, 1, 54, 1, 54, 3, 54, 676, 8, 54, 1, 54, 1, 54, 1, 55, 1, 55, 3, 55, 682, 8, 55, 1, 55, 1, 55, 3, 55, 686, 8, 55, 1, 55, 3, 55, 689, 8, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 3, 60, 704, 8, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 713, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 738, 8, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 3, 68, 748, 8, 68, 1, 69, 1, 69, 1, 69, 5, 69, 753, 8, 69, 10, 69, 12, 69, 756, 9, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 762, 8, 69, 1, 69, 1, 69, 3, 69, 766, 8, 69, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 772, 8, 70, 10, 70, 12, 70, 775, 9, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 782, 8, 70, 3, 70, 784, 8, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 795, 8, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 4, 73, 806, 8, 73, 11, 73, 12, 73, 807, 1, 73, 1, 73, 1, 74, 1, 74, 3, 74, 814, 8, 74, 1, 75, 1, 75, 3, 75, 818, 8, 75, 1, 76, 1, 76, 1, 76, 3, 76, 823, 8, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 3, 80, 841, 8, 80, 1, 81, 1, 81, 3, 81, 845, 8, 81, 1, 81, 1, 81, 3, 81, 849, 8, 81, 1, 81, 1, 81, 1, 81, 3, 81, 854, 8, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 3, 83, 866, 8, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 4, 84, 874, 8, 84, 11, 84, 12, 84, 875, 1, 84, 1, 84, 1, 85, 1, 85, 3, 85, 882, 8, 85, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 3, 87, 890, 8, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 897, 8, 87, 1, 88, 1, 88, 1, 88, 3, 88, 902, 8, 88, 1, 88, 3, 88, 905, 8, 88, 1, 88, 1, 88, 1, 88, 1, 88, 4, 88, 911, 8, 88, 11, 88, 12, 88, 912, 1, 88, 1, 88, 3, 88, 917, 8, 88, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 3, 90, 924, 8, 90, 1, 90, 1, 90, 1, 90, 3, 90, 929, 8, 90, 1, 90, 1, 90, 1, 90, 3, 90, 934, 8, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 4, 91, 941, 8, 91, 11, 91, 12, 91, 942, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 3, 92, 950, 8, 92, 1, 93, 1, 93, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 966, 8, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 3, 99, 981, 8, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 989, 8, 100, 1, 100, 1, 100, 1, 100, 3, 100, 994, 8, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 102, 1, 102, 3, 102, 1003, 8, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 3, 102, 1012, 8, 102, 1, 102, 1, 102, 3, 102, 1016, 8, 102, 1, 103, 1, 103, 1, 104, 1, 104, 1, 105, 1, 105, 3, 105, 1024, 8, 105, 1, 106, 1, 106, 1, 106, 3, 106, 1029, 8, 106, 1, 106, 5, 106, 1032, 8, 106, 10, 106, 12, 106, 1035, 9, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 3, 107, 1043, 8, 107, 1, 107, 5, 107, 1046, 8, 107, 10, 107, 12, 107, 1049, 9, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 3, 108, 1076, 8, 108, 1, 109, 1, 109, 1, 110, 1, 110, 3, 110, 1082, 8, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 5, 112, 1093, 8, 112, 10, 112, 12, 112, 1096, 9, 112, 1, 113, 1, 113, 1, 113, 5, 113, 1101, 8, 113, 10, 113, 12, 113, 1104, 9, 113, 1, 114, 1, 114, 1, 114, 5, 114, 1109, 8, 114, 10, 114, 12, 114, 1112, 9, 114, 1, 115, 1, 115, 1, 115, 3, 115, 1117, 8, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 5, 116, 1126, 8, 116, 10, 116, 12, 116, 1129, 9, 116, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 5, 118, 1140, 8, 118, 10, 118, 12, 118, 1143, 9, 118, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 5, 120, 1154, 8, 120, 10, 120, 12, 120, 1157, 9, 120, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 3, 122, 1164, 8, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 1191, 8, 123, 1, 123, 1, 123, 1, 123, 1, 123, 5, 123, 1197, 8, 123, 10, 123, 12, 123, 1200, 9, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 1213, 8, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 3, 126, 1224, 8, 126, 1, 127, 1, 127, 1, 127, 1, 127, 5, 127, 1230, 8, 127, 10, 127, 12, 127, 1233, 9, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 3, 128, 1250, 8, 128, 1, 129, 1, 129, 1, 129, 5, 129, 1255, 8, 129, 10, 129, 12, 129, 1258, 9, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 5, 130, 1265, 8, 130, 10, 130, 12, 130, 1268, 9, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 3, 131, 1275, 8, 131, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 5, 133, 1282, 8, 133, 10, 133, 12, 133, 1285, 9, 133, 1, 133, 1, 133, 5, 133, 1289, 8, 133, 10, 133, 12, 133, 1292, 9, 133, 1, 133, 1, 133, 1, 133, 5, 133, 1297, 8, 133, 10, 133, 12, 133, 1300, 9, 133, 3, 133, 1302, 8, 133, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 3, 136, 1312, 8, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 0, 5, 8, 232, 236, 240, 246, 138, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 0, 8, 1, 0, 89, 90, 1, 0, 23, 27, 1, 0, 40, 41, 1, 0, 45, 47, 2, 0, 13, 13, 66, 71, 1, 0, 72, 73, 1, 0, 74, 76, 1, 0, 89, 91, 1350, 0, 279, 1, 0, 0, 0, 2, 290, 1, 0, 0, 0, 4, 297, 1, 0, 0, 0, 6, 301, 1, 0, 0, 0, 8, 303, 1, 0, 0, 0, 10, 325, 1, 0, 0, 0, 12, 327, 1, 0, 0, 0, 14, 333, 1, 0, 0, 0, 16, 335, 1, 0, 0, 0, 18, 337, 1, 0, 0, 0, 20, 342, 1, 0, 0, 0, 22, 350, 1, 0, 0, 0, 24, 352, 1, 0, 0, 0, 26, 365, 1, 0, 0, 0, 28, 373, 1, 0, 0, 0, 30, 378, 1, 0, 0, 0, 32, 384, 1, 0, 0, 0, 34, 390, 1, 0, 0, 0, 36, 405, 1, 0, 0, 0, 38, 410, 1, 0, 0, 0, 40, 412, 1, 0, 0, 0, 42, 414, 1, 0, 0, 0, 44, 416, 1, 0, 0, 0, 46, 420, 1, 0, 0, 0, 48, 429, 1, 0, 0, 0, 50, 447, 1, 0, 0, 0, 52, 457, 1, 0, 0, 0, 54, 459, 1, 0, 0, 0, 56, 461, 1, 0, 0, 0, 58, 463, 1, 0, 0, 0, 60, 481, 1, 0, 0, 0, 62, 491, 1, 0, 0, 0, 64, 493, 1, 0, 0, 0, 66, 495, 1, 0, 0, 0, 68, 514, 1, 0, 0, 0, 70, 525, 1, 0, 0, 0, 72, 530, 1, 0, 0, 0, 74, 534, 1, 0, 0, 0, 76, 536, 1, 0, 0, 0, 78, 555, 1, 0, 0, 0, 80, 560, 1, 0, 0, 0, 82, 584, 1, 0, 0, 0, 84, 588, 1, 0, 0, 0, 86, 590, 1, 0, 0, 0, 88, 605, 1, 0, 0, 0, 90, 619, 1, 0, 0, 0, 92, 625, 1, 0, 0, 0, 94, 627, 1, 0, 0, 0, 96, 648, 1, 0, 0, 0, 98, 653, 1, 0, 0, 0, 100, 655, 1, 0, 0, 0, 102, 657, 1, 0, 0, 0, 104, 661, 1, 0, 0, 0, 106, 663, 1, 0, 0, 0, 108, 665, 1, 0, 0, 0, 110, 688, 1, 0, 0, 0, 112, 690, 1, 0, 0, 0, 114, 693, 1, 0, 0, 0, 116, 696, 1, 0, 0, 0, 118, 698, 1, 0, 0, 0, 120, 703, 1, 0, 0, 0, 122, 712, 1, 0, 0, 0, 124, 714, 1, 0, 0, 0, 126, 719, 1, 0, 0, 0, 128, 724, 1, 0, 0, 0, 130, 729, 1, 0, 0, 0, 132, 741, 1, 0, 0, 0, 134, 743, 1, 0, 0, 0, 136, 747, 1, 0, 0, 0, 138, 749, 1, 0, 0, 0, 140, 767, 1, 0, 0, 0, 142, 787, 1, 0, 0, 0, 144, 798, 1, 0, 0, 0, 146, 800, 1, 0, 0, 0, 148, 813, 1, 0, 0, 0, 150, 817, 1, 0, 0, 0, 152, 819, 1, 0, 0, 0, 154, 828, 1, 0, 0, 0, 156, 830, 1, 0, 0, 0, 158, 832, 1, 0, 0, 0, 160, 840, 1, 0, 0, 0, 162, 848, 1, 0, 0, 0, 164, 858, 1, 0, 0, 0, 166, 865, 1, 0, 0, 0, 168, 867, 1, 0, 0, 0, 170, 881, 1, 0, 0, 0, 172, 883, 1, 0, 0, 0, 174, 889, 1, 0, 0, 0, 176, 898, 1, 0, 0, 0, 178, 918, 1, 0, 0, 0, 180, 923, 1, 0, 0, 0, 182, 935, 1, 0, 0, 0, 184, 949, 1, 0, 0, 0, 186, 951, 1, 0, 0, 0, 188, 953, 1, 0, 0, 0, 190, 955, 1, 0, 0, 0, 192, 959, 1, 0, 0, 0, 194, 969, 1, 0, 0, 0, 196, 973, 1, 0, 0, 0, 198, 977, 1, 0, 0, 0, 200, 984, 1, 0, 0, 0, 202, 998, 1, 0, 0, 0, 204, 1000, 1, 0, 0, 0, 206, 1017, 1, 0, 0, 0, 208, 1019, 1, 0, 0, 0, 210, 1023, 1, 0, 0, 0, 212, 1025, 1, 0, 0, 0, 214, 1039, 1, 0, 0, 0, 216, 1075, 1, 0, 0, 0, 218, 1077, 1, 0, 0, 0, 220, 1081, 1, 0, 0, 0, 222, 1083, 1, 0, 0, 0, 224, 1089, 1, 0, 0, 0, 226, 1097, 1, 0, 0, 0, 228, 1105, 1, 0, 0, 0, 230, 1116, 1, 0, 0, 0, 232, 1118, 1, 0, 0, 0, 234, 1130, 1, 0, 0, 0, 236, 1132, 1, 0, 0, 0, 238, 1144, 1, 0, 0, 0, 240, 1146, 1, 0, 0, 0, 242, 1158, 1, 0, 0, 0, 244, 1163, 1, 0, 0, 0, 246, 1165, 1, 0, 0, 0, 248, 1201, 1, 0, 0, 0, 250, 1212, 1, 0, 0, 0, 252, 1223, 1, 0, 0, 0, 254, 1225, 1, 0, 0, 0, 256, 1249, 1, 0, 0, 0, 258, 1256, 1, 0, 0, 0, 260, 1261, 1, 0, 0, 0, 262, 1269, 1, 0, 0, 0, 264, 1276, 1, 0, 0, 0, 266, 1301, 1, 0, 0, 0, 268, 1303, 1, 0, 0, 0, 270, 1305, 1, 0, 0, 0, 272, 1311, 1, 0, 0, 0, 274, 1315, 1, 0, 0, 0, 276, 278, 3, 2, 1, 0, 277, 276, 1, 0, 0, 0, 278, 281, 1, 0, 0, 0, 279, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 285, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 282, 284, 3, 10, 5, 0, 283, 282, 1, 0, 0, 0, 284, 287, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 288, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 288, 289, 5, 0, 0, 1, 289, 1, 1, 0, 0, 0, 290, 291, 3, 4, 2, 0, 291, 3, 1, 0, 0, 0, 292, 293, 5, 1, 0, 0, 293, 294, 3, 6, 3, 0, 294, 295, 5, 79, 0, 0, 295, 298, 1, 0, 0, 0, 296, 298, 5, 79, 0, 0, 297, 292, 1, 0, 0, 0, 297, 296, 1, 0, 0, 0, 298, 5, 1, 0, 0, 0, 299, 302, 5, 87, 0, 0, 300, 302, 3, 8, 4, 0, 301, 299, 1, 0, 0, 0, 301, 300, 1, 0, 0, 0, 302, 7, 1, 0, 0, 0, 303, 304, 6, 4, -1, 0, 304, 305, 5, 93, 0, 0, 305, 311, 1, 0, 0, 0, 306, 307, 10, 1, 0, 0, 307, 308, 5, 2, 0, 0, 308, 310, 5, 93, 0, 0, 309, 306, 1, 0, 0, 0, 310, 313, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 9, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 314, 326, 3, 12, 6, 0, 315, 326, 3, 20, 10, 0, 316, 326, 3, 34, 17, 0, 317, 326, 3, 48, 24, 0, 318, 326, 3, 58, 29, 0, 319, 326, 3, 76, 38, 0, 320, 326, 3, 66, 33, 0, 321, 326, 3, 80, 40, 0, 322, 326, 3, 84, 42, 0, 323, 326, 3, 94, 47, 0, 324, 326, 5, 79, 0, 0, 325, 314, 1, 0, 0, 0, 325, 315, 1, 0, 0, 0, 325, 316, 1, 0, 0, 0, 325, 317, 1, 0, 0, 0, 325, 318, 1, 0, 0, 0, 325, 319, 1, 0, 0, 0, 325, 320, 1, 0, 0, 0, 325, 321, 1, 0, 0, 0, 325, 322, 1, 0, 0, 0, 325, 323, 1, 0, 0, 0, 325, 324, 1, 0, 0, 0, 326, 11, 1, 0, 0, 0, 327, 328, 5, 3, 0, 0, 328, 329, 3, 14, 7, 0, 329, 330, 5, 4, 0, 0, 330, 331, 3, 16, 8, 0, 331, 332, 5, 79, 0, 0, 332, 13, 1, 0, 0, 0, 333, 334, 5, 93, 0, 0, 334, 15, 1, 0, 0, 0, 335, 336, 3, 18, 9, 0, 336, 17, 1, 0, 0, 0, 337, 338, 5, 5, 0, 0, 338, 339, 5, 82, 0, 0, 339, 340, 3, 26, 13, 0, 340, 341, 5, 83, 0, 0, 341, 19, 1, 0, 0, 0, 342, 343, 5, 6, 0, 0, 343, 344, 5, 93, 0, 0, 344, 345, 5, 7, 0, 0, 345, 346, 3, 14, 7, 0, 346, 347, 5, 4, 0, 0, 347, 348, 3, 22, 11, 0, 348, 349, 5, 79, 0, 0, 349, 21, 1, 0, 0, 0, 350, 351, 3, 24, 12, 0, 351, 23, 1, 0, 0, 0, 352, 353, 5, 5, 0, 0, 353, 354, 5, 82, 0, 0, 354, 357, 3, 26, 13, 0, 355, 356, 5, 8, 0, 0, 356, 358, 3, 30, 15, 0, 357, 355, 1, 0, 0, 0, 357, 358, 1, 0, 0, 0, 358, 361, 1, 0, 0, 0, 359, 360, 5, 8, 0, 0, 360, 362, 3, 32, 16, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 364, 5, 83, 0, 0, 364, 25, 1, 0, 0, 0, 365, 370, 3, 28, 14, 0, 366, 367, 5, 8, 0, 0, 367, 369, 3, 28, 14, 0, 368, 366, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0, 371, 27, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 374, 5, 93, 0, 0, 374, 375, 6, 14, -1, 0, 375, 376, 5, 9, 0, 0, 376, 377, 3, 274, 137, 0, 377, 29, 1, 0, 0, 0, 378, 379, 5, 93, 0, 0, 379, 382, 5, 9, 0, 0, 380, 383, 5, 88, 0, 0, 381, 383, 3, 274, 137, 0, 382, 380, 1, 0, 0, 0, 382, 381, 1, 0, 0, 0, 383, 31, 1, 0, 0, 0, 384, 385, 5, 93, 0, 0, 385, 388, 5, 9, 0, 0, 386, 389, 5, 88, 0, 0, 387, 389, 3, 274, 137, 0, 388, 386, 1, 0, 0, 0, 388, 387, 1, 0, 0, 0, 389, 33, 1, 0, 0, 0, 390, 391, 5, 10, 0, 0, 391, 392, 3, 40, 20, 0, 392, 393, 5, 9, 0, 0, 393, 394, 5, 80, 0, 0, 394, 399, 3, 36, 18, 0, 395, 396, 5, 8, 0, 0, 396, 398, 3, 36, 18, 0, 397, 395, 1, 0, 0, 0, 398, 401, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 399, 400, 1, 0, 0, 0, 400, 402, 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 402, 403, 5, 81, 0, 0, 403, 404, 5, 79, 0, 0, 404, 35, 1, 0, 0, 0, 405, 408, 3, 42, 21, 0, 406, 407, 5, 11, 0, 0, 407, 409, 3, 38, 19, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 37, 1, 0, 0, 0, 410, 411, 7, 0, 0, 0, 411, 39, 1, 0, 0, 0, 412, 413, 5, 93, 0, 0, 413, 41, 1, 0, 0, 0, 414, 415, 5, 93, 0, 0, 415, 43, 1, 0, 0, 0, 416, 417, 3, 40, 20, 0, 417, 418, 5, 12, 0, 0, 418, 419, 3, 42, 21, 0, 419, 45, 1, 0, 0, 0, 420, 421, 5, 82, 0, 0, 421, 422, 3, 54, 27, 0, 422, 425, 5, 13, 0, 0, 423, 426, 3, 44, 22, 0, 424, 426, 5, 92, 0, 0, 425, 423, 1, 0, 0, 0, 425, 424, 1, 0, 0, 0, 426, 427, 1, 0, 0, 0, 427, 428, 5, 83, 0, 0, 428, 47, 1, 0, 0, 0, 429, 430, 5, 14, 0, 0, 430, 432, 3, 56, 28, 0, 431, 433, 3, 50, 25, 0, 432, 431, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 445, 1, 0, 0, 0, 434, 435, 5, 9, 0, 0, 435, 436, 5, 79, 0, 0, 436, 438, 5, 94, 0, 0, 437, 439, 3, 52, 26, 0, 438, 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 5, 95, 0, 0, 443, 446, 1, 0, 0, 0, 444, 446, 5, 79, 0, 0, 445, 434, 1, 0, 0, 0, 445, 444, 1, 0, 0, 0, 446, 49, 1, 0, 0, 0, 447, 448, 5, 15, 0, 0, 448, 450, 3, 56, 28, 0, 449, 451, 3, 46, 23, 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 51, 1, 0, 0, 0, 452, 458, 3, 108, 54, 0, 453, 458, 3, 136, 68, 0, 454, 458, 3, 150, 75, 0, 455, 458, 3, 200, 100, 0, 456, 458, 3, 210, 105, 0, 457, 452, 1, 0, 0, 0, 457, 453, 1, 0, 0, 0, 457, 454, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 456, 1, 0, 0, 0, 458, 53, 1, 0, 0, 0, 459, 460, 5, 93, 0, 0, 460, 55, 1, 0, 0, 0, 461, 462, 5, 93, 0, 0, 462, 57, 1, 0, 0, 0, 463, 464, 5, 16, 0, 0, 464, 466, 3, 64, 32, 0, 465, 467, 3, 60, 30, 0, 466, 465, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 479, 1, 0, 0, 0, 468, 469, 5, 9, 0, 0, 469, 470, 5, 79, 0, 0, 470, 472, 5, 94, 0, 0, 471, 473, 3, 62, 31, 0, 472, 471, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 477, 5, 95, 0, 0, 477, 480, 1, 0, 0, 0, 478, 480, 5, 79, 0, 0, 479, 468, 1, 0, 0, 0, 479, 478, 1, 0, 0, 0, 480, 59, 1, 0, 0, 0, 481, 482, 5, 15, 0, 0, 482, 484, 3, 64, 32, 0, 483, 485, 3, 46, 23, 0, 484, 483, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 61, 1, 0, 0, 0, 486, 492, 3, 108, 54, 0, 487, 492, 3, 136, 68, 0, 488, 492, 3, 150, 75, 0, 489, 492, 3, 200, 100, 0, 490, 492, 3, 210, 105, 0, 491, 486, 1, 0, 0, 0, 491, 487, 1, 0, 0, 0, 491, 488, 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 491, 490, 1, 0, 0, 0, 492, 63, 1, 0, 0, 0, 493, 494, 5, 93, 0, 0, 494, 65, 1, 0, 0, 0, 495, 496, 5, 17, 0, 0, 496, 498, 3, 72, 36, 0, 497, 499, 3, 68, 34, 0, 498, 497, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 512, 1, 0, 0, 0, 500, 501, 5, 9, 0, 0, 501, 502, 5, 79, 0, 0, 502, 505, 5, 94, 0, 0, 503, 506, 3, 70, 35, 0, 504, 506, 3, 166, 83, 0, 505, 503, 1, 0, 0, 0, 505, 504, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 505, 1, 0, 0, 0, 507, 508, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 510, 5, 95, 0, 0, 510, 513, 1, 0, 0, 0, 511, 513, 5, 79, 0, 0, 512, 500, 1, 0, 0, 0, 512, 511, 1, 0, 0, 0, 513, 67, 1, 0, 0, 0, 514, 515, 5, 15, 0, 0, 515, 517, 3, 72, 36, 0, 516, 518, 3, 46, 23, 0, 517, 516, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 69, 1, 0, 0, 0, 519, 526, 3, 108, 54, 0, 520, 526, 3, 136, 68, 0, 521, 526, 3, 150, 75, 0, 522, 526, 3, 200, 100, 0, 523, 526, 3, 210, 105, 0, 524, 526, 3, 162, 81, 0, 525, 519, 1, 0, 0, 0, 525, 520, 1, 0, 0, 0, 525, 521, 1, 0, 0, 0, 525, 522, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0, 525, 524, 1, 0, 0, 0, 526, 71, 1, 0, 0, 0, 527, 528, 3, 64, 32, 0, 528, 529, 5, 2, 0, 0, 529, 531, 1, 0, 0, 0, 530, 527, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 533, 3, 74, 37, 0, 533, 73, 1, 0, 0, 0, 534, 535, 5, 93, 0, 0, 535, 75, 1, 0, 0, 0, 536, 537, 5, 18, 0, 0, 537, 539, 3, 72, 36, 0, 538, 540, 3, 78, 39, 0, 539, 538, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 553, 1, 0, 0, 0, 541, 542, 5, 9, 0, 0, 542, 543, 5, 79, 0, 0, 543, 546, 5, 94, 0, 0, 544, 547, 3, 70, 35, 0, 545, 547, 3, 166, 83, 0, 546, 544, 1, 0, 0, 0, 546, 545, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 546, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 5, 95, 0, 0, 551, 554, 1, 0, 0, 0, 552, 554, 5, 79, 0, 0, 553, 541, 1, 0, 0, 0, 553, 552, 1, 0, 0, 0, 554, 77, 1, 0, 0, 0, 555, 556, 5, 15, 0, 0, 556, 558, 3, 72, 36, 0, 557, 559, 3, 46, 23, 0, 558, 557, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 79, 1, 0, 0, 0, 560, 564, 5, 19, 0, 0, 561, 562, 3, 64, 32, 0, 562, 563, 5, 2, 0, 0, 563, 565, 1, 0, 0, 0, 564, 561, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 566, 569, 3, 82, 41, 0, 567, 568, 5, 7, 0, 0, 568, 570, 3, 72, 36, 0, 569, 567, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 582, 1, 0, 0, 0, 571, 572, 5, 9, 0, 0, 572, 573, 5, 79, 0, 0, 573, 575, 5, 94, 0, 0, 574, 576, 3, 70, 35, 0, 575, 574, 1, 0, 0, 0, 576, 577, 1, 0, 0, 0, 577, 575, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579, 580, 5, 95, 0, 0, 580, 583, 1, 0, 0, 0, 581, 583, 5, 79, 0, 0, 582, 571, 1, 0, 0, 0, 582, 581, 1, 0, 0, 0, 583, 81, 1, 0, 0, 0, 584, 585, 5, 93, 0, 0, 585, 83, 1, 0, 0, 0, 586, 589, 3, 86, 43, 0, 587, 589, 3, 88, 44, 0, 588, 586, 1, 0, 0, 0, 588, 587, 1, 0, 0, 0, 589, 85, 1, 0, 0, 0, 590, 591, 5, 20, 0, 0, 591, 592, 3, 40, 20, 0, 592, 593, 5, 9, 0, 0, 593, 594, 5, 80, 0, 0, 594, 599, 3, 36, 18, 0, 595, 596, 5, 8, 0, 0, 596, 598, 3, 36, 18, 0, 597, 595, 1, 0, 0, 0, 598, 601, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 602, 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 602, 603, 5, 81, 0, 0, 603, 604, 5, 79, 0, 0, 604, 87, 1, 0, 0, 0, 605, 606, 5, 20, 0, 0, 606, 607, 3, 90, 45, 0, 607, 608, 5, 9, 0, 0, 608, 609, 5, 79, 0, 0, 609, 611, 5, 94, 0, 0, 610, 612, 3, 92, 46, 0, 611, 610, 1, 0, 0, 0, 612, 613, 1, 0, 0, 0, 613, 611, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 616, 5, 95, 0, 0, 616, 89, 1, 0, 0, 0, 617, 620, 3, 106, 53, 0, 618, 620, 3, 72, 36, 0, 619, 617, 1, 0, 0, 0, 619, 618, 1, 0, 0, 0, 620, 91, 1, 0, 0, 0, 621, 626, 3, 52, 26, 0, 622, 626, 3, 62, 31, 0, 623, 626, 3, 70, 35, 0, 624, 626, 3, 166, 83, 0, 625, 621, 1, 0, 0, 0, 625, 622, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 625, 624, 1, 0, 0, 0, 626, 93, 1, 0, 0, 0, 627, 628, 5, 21, 0, 0, 628, 633, 3, 54, 27, 0, 629, 630, 5, 8, 0, 0, 630, 632, 3, 54, 27, 0, 631, 629, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 634, 636, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 636, 637, 5, 9, 0, 0, 637, 640, 3, 96, 48, 0, 638, 639, 5, 11, 0, 0, 639, 641, 3, 144, 72, 0, 640, 638, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 644, 1, 0, 0, 0, 642, 645, 3, 146, 73, 0, 643, 645, 5, 79, 0, 0, 644, 642, 1, 0, 0, 0, 644, 643, 1, 0, 0, 0, 645, 95, 1, 0, 0, 0, 646, 649, 3, 98, 49, 0, 647, 649, 3, 100, 50, 0, 648, 646, 1, 0, 0, 0, 648, 647, 1, 0, 0, 0, 649, 97, 1, 0, 0, 0, 650, 654, 3, 104, 52, 0, 651, 654, 3, 106, 53, 0, 652, 654, 3, 72, 36, 0, 653, 650, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 653, 652, 1, 0, 0, 0, 654, 99, 1, 0, 0, 0, 655, 656, 3, 102, 51, 0, 656, 101, 1, 0, 0, 0, 657, 658, 5, 22, 0, 0, 658, 659, 5, 7, 0, 0, 659, 660, 3, 98, 49, 0, 660, 103, 1, 0, 0, 0, 661, 662, 7, 1, 0, 0, 662, 105, 1, 0, 0, 0, 663, 664, 5, 93, 0, 0, 664, 107, 1, 0, 0, 0, 665, 666, 5, 28, 0, 0, 666, 671, 3, 118, 59, 0, 667, 668, 5, 82, 0, 0, 668, 669, 3, 260, 130, 0, 669, 670, 5, 83, 0, 0, 670, 672, 1, 0, 0, 0, 671, 667, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0, 672, 675, 1, 0, 0, 0, 673, 674, 5, 4, 0, 0, 674, 676, 3, 110, 55, 0, 675, 673, 1, 0, 0, 0, 675, 676, 1, 0, 0, 0, 676, 677, 1, 0, 0, 0, 677, 678, 5, 79, 0, 0, 678, 109, 1, 0, 0, 0, 679, 685, 3, 112, 56, 0, 680, 682, 3, 114, 57, 0, 681, 680, 1, 0, 0, 0, 681, 682, 1, 0, 0, 0, 682, 683, 1, 0, 0, 0, 683, 684, 5, 29, 0, 0, 684, 686, 3, 122, 61, 0, 685, 681, 1, 0, 0, 0, 685, 686, 1, 0, 0, 0, 686, 689, 1, 0, 0, 0, 687, 689, 3, 122, 61, 0, 688, 679, 1, 0, 0, 0, 688, 687, 1, 0, 0, 0, 689, 111, 1, 0, 0, 0, 690, 691, 5, 30, 0, 0, 691, 692, 3, 120, 60, 0, 692, 113, 1, 0, 0, 0, 693, 694, 5, 31, 0, 0, 694, 695, 3, 116, 58, 0, 695, 115, 1, 0, 0, 0, 696, 697, 5, 93, 0, 0, 697, 117, 1, 0, 0, 0, 698, 699, 5, 93, 0, 0, 699, 119, 1, 0, 0, 0, 700, 701, 3, 220, 110, 0, 701, 702, 5, 2, 0, 0, 702, 704, 1, 0, 0, 0, 703, 700, 1, 0, 0, 0, 703, 704, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 706, 3, 118, 59, 0, 706, 121, 1, 0, 0, 0, 707, 713, 3, 132, 66, 0, 708, 713, 3, 124, 62, 0, 709, 713, 3, 126, 63, 0, 710, 713, 3, 128, 64, 0, 711, 713, 3, 130, 65, 0, 712, 707, 1, 0, 0, 0, 712, 708, 1, 0, 0, 0, 712, 709, 1, 0, 0, 0, 712, 710, 1, 0, 0, 0, 712, 711, 1, 0, 0, 0, 713, 123, 1, 0, 0, 0, 714, 715, 5, 32, 0, 0, 715, 716, 5, 82, 0, 0, 716, 717, 3, 132, 66, 0, 717, 718, 5, 83, 0, 0, 718, 125, 1, 0, 0, 0, 719, 720, 5, 33, 0, 0, 720, 721, 5, 82, 0, 0, 721, 722, 3, 132, 66, 0, 722, 723, 5, 83, 0, 0, 723, 127, 1, 0, 0, 0, 724, 725, 5, 34, 0, 0, 725, 726, 5, 82, 0, 0, 726, 727, 3, 134, 67, 0, 727, 728, 5, 83, 0, 0, 728, 129, 1, 0, 0, 0, 729, 730, 5, 35, 0, 0, 730, 731, 5, 82, 0, 0, 731, 737, 3, 134, 67, 0, 732, 733, 5, 8, 0, 0, 733, 734, 5, 93, 0, 0, 734, 735, 6, 65, -1, 0, 735, 736, 5, 9, 0, 0, 736, 738, 3, 134, 67, 0, 737, 732, 1, 0, 0, 0, 737, 738, 1, 0, 0, 0, 738, 739, 1, 0, 0, 0, 739, 740, 5, 83, 0, 0, 740, 131, 1, 0, 0, 0, 741, 742, 3, 220, 110, 0, 742, 133, 1, 0, 0, 0, 743, 744, 3, 220, 110, 0, 744, 135, 1, 0, 0, 0, 745, 748, 3, 138, 69, 0, 746, 748, 3, 140, 70, 0, 747, 745, 1, 0, 0, 0, 747, 746, 1, 0, 0, 0, 748, 137, 1, 0, 0, 0, 749, 754, 3, 54, 27, 0, 750, 751, 5, 8, 0, 0, 751, 753, 3, 54, 27, 0, 752, 750, 1, 0, 0, 0, 753, 756, 1, 0, 0, 0, 754, 752, 1, 0, 0, 0, 754, 755, 1, 0, 0, 0, 755, 757, 1, 0, 0, 0, 756, 754, 1, 0, 0, 0, 757, 758, 5, 9, 0, 0, 758, 761, 3, 96, 48, 0, 759, 760, 5, 11, 0, 0, 760, 762, 3, 144, 72, 0, 761, 759, 1, 0, 0, 0, 761, 762, 1, 0, 0, 0, 762, 765, 1, 0, 0, 0, 763, 766, 3, 146, 73, 0, 764, 766, 5, 79, 0, 0, 765, 763, 1, 0, 0, 0, 765, 764, 1, 0, 0, 0, 766, 139, 1, 0, 0, 0, 767, 768, 5, 36, 0, 0, 768, 773, 3, 54, 27, 0, 769, 770, 5, 8, 0, 0, 770, 772, 3, 54, 27, 0, 771, 769, 1, 0, 0, 0, 772, 775, 1, 0, 0, 0, 773, 771, 1, 0, 0, 0, 773, 774, 1, 0, 0, 0, 774, 776, 1, 0, 0, 0, 775, 773, 1, 0, 0, 0, 776, 777, 5, 9, 0, 0, 777, 783, 3, 96, 48, 0, 778, 781, 5, 11, 0, 0, 779, 782, 3, 142, 71, 0, 780, 782, 3, 252, 126, 0, 781, 779, 1, 0, 0, 0, 781, 780, 1, 0, 0, 0, 782, 784, 1, 0, 0, 0, 783, 778, 1, 0, 0, 0, 783, 784, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 786, 5, 79, 0, 0, 786, 141, 1, 0, 0, 0, 787, 788, 5, 37, 0, 0, 788, 789, 5, 82, 0, 0, 789, 790, 3, 220, 110, 0, 790, 791, 5, 8, 0, 0, 791, 794, 3, 110, 55, 0, 792, 793, 5, 8, 0, 0, 793, 795, 3, 144, 72, 0, 794, 792, 1, 0, 0, 0, 794, 795, 1, 0, 0, 0, 795, 796, 1, 0, 0, 0, 796, 797, 5, 83, 0, 0, 797, 143, 1, 0, 0, 0, 798, 799, 3, 220, 110, 0, 799, 145, 1, 0, 0, 0, 800, 801, 5, 38, 0, 0, 801, 802, 5, 9, 0, 0, 802, 803, 5, 79, 0, 0, 803, 805, 5, 94, 0, 0, 804, 806, 3, 148, 74, 0, 805, 804, 1, 0, 0, 0, 806, 807, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0, 807, 808, 1, 0, 0, 0, 808, 809, 1, 0, 0, 0, 809, 810, 5, 95, 0, 0, 810, 147, 1, 0, 0, 0, 811, 814, 3, 150, 75, 0, 812, 814, 3, 210, 105, 0, 813, 811, 1, 0, 0, 0, 813, 812, 1, 0, 0, 0, 814, 149, 1, 0, 0, 0, 815, 818, 3, 152, 76, 0, 816, 818, 3, 158, 79, 0, 817, 815, 1, 0, 0, 0, 817, 816, 1, 0, 0, 0, 818, 151, 1, 0, 0, 0, 819, 820, 5, 39, 0, 0, 820, 822, 5, 82, 0, 0, 821, 823, 3, 154, 77, 0, 822, 821, 1, 0, 0, 0, 822, 823, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 824, 825, 3, 156, 78, 0, 825, 826, 5, 83, 0, 0, 826, 827, 5, 79, 0, 0, 827, 153, 1, 0, 0, 0, 828, 829, 7, 2, 0, 0, 829, 155, 1, 0, 0, 0, 830, 831, 3, 220, 110, 0, 831, 157, 1, 0, 0, 0, 832, 833, 5, 42, 0, 0, 833, 834, 5, 82, 0, 0, 834, 835, 3, 160, 80, 0, 835, 836, 5, 83, 0, 0, 836, 837, 5, 79, 0, 0, 837, 159, 1, 0, 0, 0, 838, 841, 3, 54, 27, 0, 839, 841, 3, 248, 124, 0, 840, 838, 1, 0, 0, 0, 840, 839, 1, 0, 0, 0, 841, 161, 1, 0, 0, 0, 842, 845, 3, 164, 82, 0, 843, 845, 3, 188, 94, 0, 844, 842, 1, 0, 0, 0, 844, 843, 1, 0, 0, 0, 845, 846, 1, 0, 0, 0, 846, 847, 5, 2, 0, 0, 847, 849, 1, 0, 0, 0, 848, 844, 1, 0, 0, 0, 848, 849, 1, 0, 0, 0, 849, 850, 1, 0, 0, 0, 850, 851, 3, 82, 41, 0, 851, 853, 5, 82, 0, 0, 852, 854, 3, 266, 133, 0, 853, 852, 1, 0, 0, 0, 853, 854, 1, 0, 0, 0, 854, 855, 1, 0, 0, 0, 855, 856, 5, 83, 0, 0, 856, 857, 5, 79, 0, 0, 857, 163, 1, 0, 0, 0, 858, 859, 3, 188, 94, 0, 859, 860, 5, 2, 0, 0, 860, 861, 1, 0, 0, 0, 861, 862, 3, 74, 37, 0, 862, 165, 1, 0, 0, 0, 863, 866, 3, 168, 84, 0, 864, 866, 3, 172, 86, 0, 865, 863, 1, 0, 0, 0, 865, 864, 1, 0, 0, 0, 866, 167, 1, 0, 0, 0, 867, 868, 5, 43, 0, 0, 868, 869, 3, 110, 55, 0, 869, 870, 5, 9, 0, 0, 870, 871, 5, 79, 0, 0, 871, 873, 5, 94, 0, 0, 872, 874, 3, 170, 85, 0, 873, 872, 1, 0, 0, 0, 874, 875, 1, 0, 0, 0, 875, 873, 1, 0, 0, 0, 875, 876, 1, 0, 0, 0, 876, 877, 1, 0, 0, 0, 877, 878, 5, 95, 0, 0, 878, 169, 1, 0, 0, 0, 879, 882, 3, 194, 97, 0, 880, 882, 3, 192, 96, 0, 881, 879, 1, 0, 0, 0, 881, 880, 1, 0, 0, 0, 882, 171, 1, 0, 0, 0, 883, 884, 5, 44, 0, 0, 884, 885, 3, 174, 87, 0, 885, 173, 1, 0, 0, 0, 886, 887, 3, 186, 93, 0, 887, 888, 5, 9, 0, 0, 888, 890, 1, 0, 0, 0, 889, 886, 1, 0, 0, 0, 889, 890, 1, 0, 0, 0, 890, 896, 1, 0, 0, 0, 891, 897, 3, 176, 88, 0, 892, 897, 3, 180, 90, 0, 893, 897, 3, 190, 95, 0, 894, 897, 3, 192, 96, 0, 895, 897, 3, 194, 97, 0, 896, 891, 1, 0, 0, 0, 896, 892, 1, 0, 0, 0, 896, 893, 1, 0, 0, 0, 896, 894, 1, 0, 0, 0, 896, 895, 1, 0, 0, 0, 897, 175, 1, 0, 0, 0, 898, 904, 3, 178, 89, 0, 899, 901, 5, 82, 0, 0, 900, 902, 3, 266, 133, 0, 901, 900, 1, 0, 0, 0, 901, 902, 1, 0, 0, 0, 902, 903, 1, 0, 0, 0, 903, 905, 5, 83, 0, 0, 904, 899, 1, 0, 0, 0, 904, 905, 1, 0, 0, 0, 905, 906, 1, 0, 0, 0, 906, 907, 5, 9, 0, 0, 907, 908, 5, 79, 0, 0, 908, 910, 5, 94, 0, 0, 909, 911, 3, 174, 87, 0, 910, 909, 1, 0, 0, 0, 911, 912, 1, 0, 0, 0, 912, 910, 1, 0, 0, 0, 912, 913, 1, 0, 0, 0, 913, 914, 1, 0, 0, 0, 914, 916, 5, 95, 0, 0, 915, 917, 3, 182, 91, 0, 916, 915, 1, 0, 0, 0, 916, 917, 1, 0, 0, 0, 917, 177, 1, 0, 0, 0, 918, 919, 7, 3, 0, 0, 919, 179, 1, 0, 0, 0, 920, 921, 3, 188, 94, 0, 921, 922, 5, 2, 0, 0, 922, 924, 1, 0, 0, 0, 923, 920, 1, 0, 0, 0, 923, 924, 1, 0, 0, 0, 924, 925, 1, 0, 0, 0, 925, 926, 3, 74, 37, 0, 926, 928, 5, 82, 0, 0, 927, 929, 3, 266, 133, 0, 928, 927, 1, 0, 0, 0, 928, 929, 1, 0, 0, 0, 929, 930, 1, 0, 0, 0, 930, 933, 5, 83, 0, 0, 931, 934, 3, 182, 91, 0, 932, 934, 5, 79, 0, 0, 933, 931, 1, 0, 0, 0, 933, 932, 1, 0, 0, 0, 934, 181, 1, 0, 0, 0, 935, 936, 5, 38, 0, 0, 936, 937, 5, 9, 0, 0, 937, 938, 5, 79, 0, 0, 938, 940, 5, 94, 0, 0, 939, 941, 3, 184, 92, 0, 940, 939, 1, 0, 0, 0, 941, 942, 1, 0, 0, 0, 942, 940, 1, 0, 0, 0, 942, 943, 1, 0, 0, 0, 943, 944, 1, 0, 0, 0, 944, 945, 5, 95, 0, 0, 945, 183, 1, 0, 0, 0, 946, 950, 3, 150, 75, 0, 947, 950, 3, 162, 81, 0, 948, 950, 3, 196, 98, 0, 949, 946, 1, 0, 0, 0, 949, 947, 1, 0, 0, 0, 949, 948, 1, 0, 0, 0, 950, 185, 1, 0, 0, 0, 951, 952, 5, 93, 0, 0, 952, 187, 1, 0, 0, 0, 953, 954, 3, 64, 32, 0, 954, 189, 1, 0, 0, 0, 955, 956, 5, 48, 0, 0, 956, 957, 3, 110, 55, 0, 957, 958, 5, 79, 0, 0, 958, 191, 1, 0, 0, 0, 959, 960, 5, 49, 0, 0, 960, 965, 3, 118, 59, 0, 961, 962, 5, 82, 0, 0, 962, 963, 3, 266, 133, 0, 963, 964, 5, 83, 0, 0, 964, 966, 1, 0, 0, 0, 965, 961, 1, 0, 0, 0, 965, 966, 1, 0, 0, 0, 966, 967, 1, 0, 0, 0, 967, 968, 5, 79, 0, 0, 968, 193, 1, 0, 0, 0, 969, 970, 5, 50, 0, 0, 970, 971, 3, 198, 99, 0, 971, 972, 5, 79, 0, 0, 972, 195, 1, 0, 0, 0, 973, 974, 5, 51, 0, 0, 974, 975, 3, 110, 55, 0, 975, 976, 5, 79, 0, 0, 976, 197, 1, 0, 0, 0, 977, 978, 3, 246, 123, 0, 978, 980, 5, 82, 0, 0, 979, 981, 3, 266, 133, 0, 980, 979, 1, 0, 0, 0, 980, 981, 1, 0, 0, 0, 981, 982, 1, 0, 0, 0, 982, 983, 5, 83, 0, 0, 983, 199, 1, 0, 0, 0, 984, 985, 5, 52, 0, 0, 985, 986, 3, 208, 104, 0, 986, 988, 5, 82, 0, 0, 987, 989, 3, 260, 130, 0, 988, 987, 1, 0, 0, 0, 988, 989, 1, 0, 0, 0, 989, 990, 1, 0, 0, 0, 990, 993, 5, 83, 0, 0, 991, 992, 5, 53, 0, 0, 992, 994, 3, 202, 101, 0, 993, 991, 1, 0, 0, 0, 993, 994, 1, 0, 0, 0, 994, 995, 1, 0, 0, 0, 995, 996, 3, 204, 102, 0, 996, 997, 5, 79, 0, 0, 997, 201, 1, 0, 0, 0, 998, 999, 3, 96, 48, 0, 999, 203, 1, 0, 0, 0, 1000, 1002, 5, 4, 0, 0, 1001, 1003, 3, 206, 103, 0, 1002, 1001, 1, 0, 0, 0, 1002, 1003, 1, 0, 0, 0, 1003, 1015, 1, 0, 0, 0, 1004, 1005, 5, 54, 0, 0, 1005, 1016, 3, 220, 110, 0, 1006, 1016, 5, 55, 0, 0, 1007, 1008, 5, 56, 0, 0, 1008, 1009, 3, 8, 4, 0, 1009, 1011, 5, 82, 0, 0, 1010, 1012, 3, 266, 133, 0, 1011, 1010, 1, 0, 0, 0, 1011, 1012, 1, 0, 0, 0, 1012, 1013, 1, 0, 0, 0, 1013, 1014, 5, 83, 0, 0, 1014, 1016, 1, 0, 0, 0, 1015, 1004, 1, 0, 0, 0, 1015, 1006, 1, 0, 0, 0, 1015, 1007, 1, 0, 0, 0, 1016, 205, 1, 0, 0, 0, 1017, 1018, 5, 57, 0, 0, 1018, 207, 1, 0, 0, 0, 1019, 1020, 5, 93, 0, 0, 1020, 209, 1, 0, 0, 0, 1021, 1024, 3, 212, 106, 0, 1022, 1024, 3, 214, 107, 0, 1023, 1021, 1, 0, 0, 0, 1023, 1022, 1, 0, 0, 0, 1024, 211, 1, 0, 0, 0, 1025, 1026, 5, 58, 0, 0, 1026, 1028, 5, 82, 0, 0, 1027, 1029, 3, 218, 109, 0, 1028, 1027, 1, 0, 0, 0, 1028, 1029, 1, 0, 0, 0, 1029, 1033, 1, 0, 0, 0, 1030, 1032, 3, 216, 108, 0, 1031, 1030, 1, 0, 0, 0, 1032, 1035, 1, 0, 0, 0, 1033, 1031, 1, 0, 0, 0, 1033, 1034, 1, 0, 0, 0, 1034, 1036, 1, 0, 0, 0, 1035, 1033, 1, 0, 0, 0, 1036, 1037, 5, 83, 0, 0, 1037, 1038, 5, 79, 0, 0, 1038, 213, 1, 0, 0, 0, 1039, 1040, 5, 59, 0, 0, 1040, 1042, 5, 82, 0, 0, 1041, 1043, 3, 218, 109, 0, 1042, 1041, 1, 0, 0, 0, 1042, 1043, 1, 0, 0, 0, 1043, 1047, 1, 0, 0, 0, 1044, 1046, 3, 216, 108, 0, 1045, 1044, 1, 0, 0, 0, 1046, 1049, 1, 0, 0, 0, 1047, 1045, 1, 0, 0, 0, 1047, 1048, 1, 0, 0, 0, 1048, 1050, 1, 0, 0, 0, 1049, 1047, 1, 0, 0, 0, 1050, 1051, 5, 83, 0, 0, 1051, 1052, 5, 79, 0, 0, 1052, 215, 1, 0, 0, 0, 1053, 1054, 5, 8, 0, 0, 1054, 1055, 5, 54, 0, 0, 1055, 1056, 5, 9, 0, 0, 1056, 1076, 3, 220, 110, 0, 1057, 1058, 5, 8, 0, 0, 1058, 1059, 5, 6, 0, 0, 1059, 1060, 5, 9, 0, 0, 1060, 1076, 5, 93, 0, 0, 1061, 1062, 5, 8, 0, 0, 1062, 1063, 5, 60, 0, 0, 1063, 1064, 5, 9, 0, 0, 1064, 1076, 3, 256, 128, 0, 1065, 1066, 5, 8, 0, 0, 1066, 1067, 5, 35, 0, 0, 1067, 1068, 5, 9, 0, 0, 1068, 1076, 3, 252, 126, 0, 1069, 1070, 5, 8, 0, 0, 1070, 1071, 5, 28, 0, 0, 1071, 1072, 5, 9, 0, 0, 1072, 1076, 3, 118, 59, 0, 1073, 1074, 5, 8, 0, 0, 1074, 1076, 3, 270, 135, 0, 1075, 1053, 1, 0, 0, 0, 1075, 1057, 1, 0, 0, 0, 1075, 1061, 1, 0, 0, 0, 1075, 1065, 1, 0, 0, 0, 1075, 1069, 1, 0, 0, 0, 1075, 1073, 1, 0, 0, 0, 1076, 217, 1, 0, 0, 0, 1077, 1078, 5, 93, 0, 0, 1078, 219, 1, 0, 0, 0, 1079, 1082, 3, 224, 112, 0, 1080, 1082, 3, 222, 111, 0, 1081, 1079, 1, 0, 0, 0, 1081, 1080, 1, 0, 0, 0, 1082, 221, 1, 0, 0, 0, 1083, 1084, 3, 224, 112, 0, 1084, 1085, 5, 61, 0, 0, 1085, 1086, 3, 220, 110, 0, 1086, 1087, 5, 9, 0, 0, 1087, 1088, 3, 220, 110, 0, 1088, 223, 1, 0, 0, 0, 1089, 1094, 3, 226, 113, 0, 1090, 1091, 5, 62, 0, 0, 1091, 1093, 3, 226, 113, 0, 1092, 1090, 1, 0, 0, 0, 1093, 1096, 1, 0, 0, 0, 1094, 1092, 1, 0, 0, 0, 1094, 1095, 1, 0, 0, 0, 1095, 225, 1, 0, 0, 0, 1096, 1094, 1, 0, 0, 0, 1097, 1102, 3, 228, 114, 0, 1098, 1099, 5, 63, 0, 0, 1099, 1101, 3, 228, 114, 0, 1100, 1098, 1, 0, 0, 0, 1101, 1104, 1, 0, 0, 0, 1102, 1100, 1, 0, 0, 0, 1102, 1103, 1, 0, 0, 0, 1103, 227, 1, 0, 0, 0, 1104, 1102, 1, 0, 0, 0, 1105, 1110, 3, 230, 115, 0, 1106, 1107, 5, 64, 0, 0, 1107, 1109, 3, 230, 115, 0, 1108, 1106, 1, 0, 0, 0, 1109, 1112, 1, 0, 0, 0, 1110, 1108, 1, 0, 0, 0, 1110, 1111, 1, 0, 0, 0, 1111, 229, 1, 0, 0, 0, 1112, 1110, 1, 0, 0, 0, 1113, 1114, 5, 65, 0, 0, 1114, 1117, 3, 230, 115, 0, 1115, 1117, 3, 232, 116, 0, 1116, 1113, 1, 0, 0, 0, 1116, 1115, 1, 0, 0, 0, 1117, 231, 1, 0, 0, 0, 1118, 1119, 6, 116, -1, 0, 1119, 1120, 3, 236, 118, 0, 1120, 1127, 1, 0, 0, 0, 1121, 1122, 10, 1, 0, 0, 1122, 1123, 3, 234, 117, 0, 1123, 1124, 3, 236, 118, 0, 1124, 1126, 1, 0, 0, 0, 1125, 1121, 1, 0, 0, 0, 1126, 1129, 1, 0, 0, 0, 1127, 1125, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 233, 1, 0, 0, 0, 1129, 1127, 1, 0, 0, 0, 1130, 1131, 7, 4, 0, 0, 1131, 235, 1, 0, 0, 0, 1132, 1133, 6, 118, -1, 0, 1133, 1134, 3, 240, 120, 0, 1134, 1141, 1, 0, 0, 0, 1135, 1136, 10, 1, 0, 0, 1136, 1137, 3, 238, 119, 0, 1137, 1138, 3, 240, 120, 0, 1138, 1140, 1, 0, 0, 0, 1139, 1135, 1, 0, 0, 0, 1140, 1143, 1, 0, 0, 0, 1141, 1139, 1, 0, 0, 0, 1141, 1142, 1, 0, 0, 0, 1142, 237, 1, 0, 0, 0, 1143, 1141, 1, 0, 0, 0, 1144, 1145, 7, 5, 0, 0, 1145, 239, 1, 0, 0, 0, 1146, 1147, 6, 120, -1, 0, 1147, 1148, 3, 244, 122, 0, 1148, 1155, 1, 0, 0, 0, 1149, 1150, 10, 1, 0, 0, 1150, 1151, 3, 242, 121, 0, 1151, 1152, 3, 244, 122, 0, 1152, 1154, 1, 0, 0, 0, 1153, 1149, 1, 0, 0, 0, 1154, 1157, 1, 0, 0, 0, 1155, 1153, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 241, 1, 0, 0, 0, 1157, 1155, 1, 0, 0, 0, 1158, 1159, 7, 6, 0, 0, 1159, 243, 1, 0, 0, 0, 1160, 1164, 3, 246, 123, 0, 1161, 1162, 5, 73, 0, 0, 1162, 1164, 3, 244, 122, 0, 1163, 1160, 1, 0, 0, 0, 1163, 1161, 1, 0, 0, 0, 1164, 245, 1, 0, 0, 0, 1165, 1166, 6, 123, -1, 0, 1166, 1167, 3, 250, 125, 0, 1167, 1198, 1, 0, 0, 0, 1168, 1169, 10, 5, 0, 0, 1169, 1170, 5, 2, 0, 0, 1170, 1171, 5, 31, 0, 0, 1171, 1172, 5, 82, 0, 0, 1172, 1173, 3, 96, 48, 0, 1173, 1174, 5, 83, 0, 0, 1174, 1197, 1, 0, 0, 0, 1175, 1176, 10, 4, 0, 0, 1176, 1177, 5, 2, 0, 0, 1177, 1178, 5, 4, 0, 0, 1178, 1179, 5, 82, 0, 0, 1179, 1180, 3, 96, 48, 0, 1180, 1181, 5, 83, 0, 0, 1181, 1197, 1, 0, 0, 0, 1182, 1183, 10, 3, 0, 0, 1183, 1184, 5, 80, 0, 0, 1184, 1185, 3, 220, 110, 0, 1185, 1186, 5, 81, 0, 0, 1186, 1197, 1, 0, 0, 0, 1187, 1188, 10, 2, 0, 0, 1188, 1190, 5, 82, 0, 0, 1189, 1191, 3, 266, 133, 0, 1190, 1189, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 1, 0, 0, 0, 1192, 1197, 5, 83, 0, 0, 1193, 1194, 10, 1, 0, 0, 1194, 1195, 5, 2, 0, 0, 1195, 1197, 3, 54, 27, 0, 1196, 1168, 1, 0, 0, 0, 1196, 1175, 1, 0, 0, 0, 1196, 1182, 1, 0, 0, 0, 1196, 1187, 1, 0, 0, 0, 1196, 1193, 1, 0, 0, 0, 1197, 1200, 1, 0, 0, 0, 1198, 1196, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 247, 1, 0, 0, 0, 1200, 1198, 1, 0, 0, 0, 1201, 1202, 3, 246, 123, 0, 1202, 1203, 5, 2, 0, 0, 1203, 1204, 3, 54, 27, 0, 1204, 249, 1, 0, 0, 0, 1205, 1213, 3, 252, 126, 0, 1206, 1213, 5, 77, 0, 0, 1207, 1213, 5, 93, 0, 0, 1208, 1209, 5, 82, 0, 0, 1209, 1210, 3, 220, 110, 0, 1210, 1211, 5, 83, 0, 0, 1211, 1213, 1, 0, 0, 0, 1212, 1205, 1, 0, 0, 0, 1212, 1206, 1, 0, 0, 0, 1212, 1207, 1, 0, 0, 0, 1212, 1208, 1, 0, 0, 0, 1213, 251, 1, 0, 0, 0, 1214, 1224, 3, 272, 136, 0, 1215, 1224, 5, 88, 0, 0, 1216, 1224, 3, 274, 137, 0, 1217, 1224, 5, 92, 0, 0, 1218, 1224, 5, 87, 0, 0, 1219, 1224, 3, 258, 129, 0, 1220, 1224, 3, 44, 22, 0, 1221, 1224, 3, 254, 127, 0, 1222, 1224, 3, 256, 128, 0, 1223, 1214, 1, 0, 0, 0, 1223, 1215, 1, 0, 0, 0, 1223, 1216, 1, 0, 0, 0, 1223, 1217, 1, 0, 0, 0, 1223, 1218, 1, 0, 0, 0, 1223, 1219, 1, 0, 0, 0, 1223, 1220, 1, 0, 0, 0, 1223, 1221, 1, 0, 0, 0, 1223, 1222, 1, 0, 0, 0, 1224, 253, 1, 0, 0, 0, 1225, 1226, 5, 80, 0, 0, 1226, 1231, 3, 220, 110, 0, 1227, 1228, 5, 8, 0, 0, 1228, 1230, 3, 220, 110, 0, 1229, 1227, 1, 0, 0, 0, 1230, 1233, 1, 0, 0, 0, 1231, 1229, 1, 0, 0, 0, 1231, 1232, 1, 0, 0, 0, 1232, 1234, 1, 0, 0, 0, 1233, 1231, 1, 0, 0, 0, 1234, 1235, 5, 81, 0, 0, 1235, 255, 1, 0, 0, 0, 1236, 1237, 5, 60, 0, 0, 1237, 1238, 5, 82, 0, 0, 1238, 1239, 3, 220, 110, 0, 1239, 1240, 5, 8, 0, 0, 1240, 1241, 3, 220, 110, 0, 1241, 1242, 5, 83, 0, 0, 1242, 1250, 1, 0, 0, 0, 1243, 1244, 5, 80, 0, 0, 1244, 1245, 3, 220, 110, 0, 1245, 1246, 5, 78, 0, 0, 1246, 1247, 3, 220, 110, 0, 1247, 1248, 5, 81, 0, 0, 1248, 1250, 1, 0, 0, 0, 1249, 1236, 1, 0, 0, 0, 1249, 1243, 1, 0, 0, 0, 1250, 257, 1, 0, 0, 0, 1251, 1252, 3, 54, 27, 0, 1252, 1253, 5, 2, 0, 0, 1253, 1255, 1, 0, 0, 0, 1254, 1251, 1, 0, 0, 0, 1255, 1258, 1, 0, 0, 0, 1256, 1254, 1, 0, 0, 0, 1256, 1257, 1, 0, 0, 0, 1257, 1259, 1, 0, 0, 0, 1258, 1256, 1, 0, 0, 0, 1259, 1260, 3, 54, 27, 0, 1260, 259, 1, 0, 0, 0, 1261, 1266, 3, 262, 131, 0, 1262, 1263, 5, 8, 0, 0, 1263, 1265, 3, 262, 131, 0, 1264, 1262, 1, 0, 0, 0, 1265, 1268, 1, 0, 0, 0, 1266, 1264, 1, 0, 0, 0, 1266, 1267, 1, 0, 0, 0, 1267, 261, 1, 0, 0, 0, 1268, 1266, 1, 0, 0, 0, 1269, 1270, 3, 264, 132, 0, 1270, 1271, 5, 9, 0, 0, 1271, 1274, 3, 96, 48, 0, 1272, 1273, 5, 11, 0, 0, 1273, 1275, 3, 144, 72, 0, 1274, 1272, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 263, 1, 0, 0, 0, 1276, 1277, 5, 93, 0, 0, 1277, 265, 1, 0, 0, 0, 1278, 1283, 3, 268, 134, 0, 1279, 1280, 5, 8, 0, 0, 1280, 1282, 3, 268, 134, 0, 1281, 1279, 1, 0, 0, 0, 1282, 1285, 1, 0, 0, 0, 1283, 1281, 1, 0, 0, 0, 1283, 1284, 1, 0, 0, 0, 1284, 1290, 1, 0, 0, 0, 1285, 1283, 1, 0, 0, 0, 1286, 1287, 5, 8, 0, 0, 1287, 1289, 3, 270, 135, 0, 1288, 1286, 1, 0, 0, 0, 1289, 1292, 1, 0, 0, 0, 1290, 1288, 1, 0, 0, 0, 1290, 1291, 1, 0, 0, 0, 1291, 1302, 1, 0, 0, 0, 1292, 1290, 1, 0, 0, 0, 1293, 1298, 3, 270, 135, 0, 1294, 1295, 5, 8, 0, 0, 1295, 1297, 3, 270, 135, 0, 1296, 1294, 1, 0, 0, 0, 1297, 1300, 1, 0, 0, 0, 1298, 1296, 1, 0, 0, 0, 1298, 1299, 1, 0, 0, 0, 1299, 1302, 1, 0, 0, 0, 1300, 1298, 1, 0, 0, 0, 1301, 1278, 1, 0, 0, 0, 1301, 1293, 1, 0, 0, 0, 1302, 267, 1, 0, 0, 0, 1303, 1304, 3, 220, 110, 0, 1304, 269, 1, 0, 0, 0, 1305, 1306, 3, 264, 132, 0, 1306, 1307, 5, 9, 0, 0, 1307, 1308, 3, 220, 110, 0, 1308, 271, 1, 0, 0, 0, 1309, 1312, 5, 88, 0, 0, 1310, 1312, 3, 274, 137, 0, 1311, 1309, 1, 0, 0, 0, 1311, 1310, 1, 0, 0, 0, 1312, 1313, 1, 0, 0, 0, 1313, 1314, 5, 93, 0, 0, 1314, 273, 1, 0, 0, 0, 1315, 1316, 7, 7, 0, 0, 1316, 275, 1, 0, 0, 0, 125, 279, 285, 297, 301, 311, 325, 357, 361, 370, 382, 388, 399, 408, 425, 432, 440, 445, 450, 457, 466, 474, 479, 484, 491, 498, 505, 507, 512, 517, 525, 530, 539, 546, 548, 553, 558, 564, 569, 577, 582, 588, 599, 613, 619, 625, 633, 640, 644, 648, 653, 671, 675, 681, 685, 688, 703, 712, 737, 747, 754, 761, 765, 773, 781, 783, 794, 807, 813, 817, 822, 840, 844, 848, 853, 865, 875, 881, 889, 896, 901, 904, 912, 916, 923, 928, 933, 942, 949, 965, 980, 988, 993, 1002, 1011, 1015, 1023, 1028, 1033, 1042, 1047, 1075, 1081, 1094, 1102, 1110, 1116, 1127, 1141, 1155, 1163, 1190, 1196, 1198, 1212, 1223, 1231, 1249, 1256, 1266, 1274, 1283, 1290, 1298, 1301, 1311]
\ No newline at end of file
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2.tokens b/srunner/osc2/osc2_parser/OpenSCENARIO2.tokens
deleted file mode 100644
index c97b089..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2.tokens
+++ /dev/null
@@ -1,177 +0,0 @@
-T__0=1
-T__1=2
-T__2=3
-T__3=4
-T__4=5
-T__5=6
-T__6=7
-T__7=8
-T__8=9
-T__9=10
-T__10=11
-T__11=12
-T__12=13
-T__13=14
-T__14=15
-T__15=16
-T__16=17
-T__17=18
-T__18=19
-T__19=20
-T__20=21
-T__21=22
-T__22=23
-T__23=24
-T__24=25
-T__25=26
-T__26=27
-T__27=28
-T__28=29
-T__29=30
-T__30=31
-T__31=32
-T__32=33
-T__33=34
-T__34=35
-T__35=36
-T__36=37
-T__37=38
-T__38=39
-T__39=40
-T__40=41
-T__41=42
-T__42=43
-T__43=44
-T__44=45
-T__45=46
-T__46=47
-T__47=48
-T__48=49
-T__49=50
-T__50=51
-T__51=52
-T__52=53
-T__53=54
-T__54=55
-T__55=56
-T__56=57
-T__57=58
-T__58=59
-T__59=60
-T__60=61
-T__61=62
-T__62=63
-T__63=64
-T__64=65
-T__65=66
-T__66=67
-T__67=68
-T__68=69
-T__69=70
-T__70=71
-T__71=72
-T__72=73
-T__73=74
-T__74=75
-T__75=76
-T__76=77
-T__77=78
-NEWLINE=79
-OPEN_BRACK=80
-CLOSE_BRACK=81
-OPEN_PAREN=82
-CLOSE_PAREN=83
-SKIP_=84
-BLOCK_COMMENT=85
-LINE_COMMENT=86
-StringLiteral=87
-FloatLiteral=88
-UintLiteral=89
-HexUintLiteral=90
-IntLiteral=91
-BoolLiteral=92
-Identifier=93
-INDENT=94
-DEDENT=95
-'import'=1
-'.'=2
-'type'=3
-'is'=4
-'SI'=5
-'unit'=6
-'of'=7
-','=8
-':'=9
-'enum'=10
-'='=11
-'!'=12
-'=='=13
-'struct'=14
-'inherits'=15
-'actor'=16
-'scenario'=17
-'action'=18
-'modifier'=19
-'extend'=20
-'global'=21
-'list'=22
-'int'=23
-'uint'=24
-'float'=25
-'bool'=26
-'string'=27
-'event'=28
-'if'=29
-'@'=30
-'as'=31
-'rise'=32
-'fall'=33
-'elapsed'=34
-'every'=35
-'var'=36
-'sample'=37
-'with'=38
-'keep'=39
-'default'=40
-'hard'=41
-'remove_default'=42
-'on'=43
-'do'=44
-'serial'=45
-'one_of'=46
-'parallel'=47
-'wait'=48
-'emit'=49
-'call'=50
-'until'=51
-'def'=52
-'->'=53
-'expression'=54
-'undefined'=55
-'external'=56
-'only'=57
-'cover'=58
-'record'=59
-'range'=60
-'?'=61
-'=>'=62
-'or'=63
-'and'=64
-'not'=65
-'!='=66
-'<'=67
-'<='=68
-'>'=69
-'>='=70
-'in'=71
-'+'=72
-'-'=73
-'*'=74
-'/'=75
-'%'=76
-'it'=77
-'..'=78
-'['=80
-']'=81
-'('=82
-')'=83
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.interp b/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.interp
deleted file mode 100644
index edcc30d..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.interp
+++ /dev/null
@@ -1,311 +0,0 @@
-token literal names:
-null
-'import'
-'.'
-'type'
-'is'
-'SI'
-'unit'
-'of'
-','
-':'
-'enum'
-'='
-'!'
-'=='
-'struct'
-'inherits'
-'actor'
-'scenario'
-'action'
-'modifier'
-'extend'
-'global'
-'list'
-'int'
-'uint'
-'float'
-'bool'
-'string'
-'event'
-'if'
-'@'
-'as'
-'rise'
-'fall'
-'elapsed'
-'every'
-'var'
-'sample'
-'with'
-'keep'
-'default'
-'hard'
-'remove_default'
-'on'
-'do'
-'serial'
-'one_of'
-'parallel'
-'wait'
-'emit'
-'call'
-'until'
-'def'
-'->'
-'expression'
-'undefined'
-'external'
-'only'
-'cover'
-'record'
-'range'
-'?'
-'=>'
-'or'
-'and'
-'not'
-'!='
-'<'
-'<='
-'>'
-'>='
-'in'
-'+'
-'-'
-'*'
-'/'
-'%'
-'it'
-'..'
-null
-'['
-']'
-'('
-')'
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-
-token symbolic names:
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-null
-NEWLINE
-OPEN_BRACK
-CLOSE_BRACK
-OPEN_PAREN
-CLOSE_PAREN
-SKIP_
-BLOCK_COMMENT
-LINE_COMMENT
-StringLiteral
-FloatLiteral
-UintLiteral
-HexUintLiteral
-IntLiteral
-BoolLiteral
-Identifier
-
-rule names:
-T__0
-T__1
-T__2
-T__3
-T__4
-T__5
-T__6
-T__7
-T__8
-T__9
-T__10
-T__11
-T__12
-T__13
-T__14
-T__15
-T__16
-T__17
-T__18
-T__19
-T__20
-T__21
-T__22
-T__23
-T__24
-T__25
-T__26
-T__27
-T__28
-T__29
-T__30
-T__31
-T__32
-T__33
-T__34
-T__35
-T__36
-T__37
-T__38
-T__39
-T__40
-T__41
-T__42
-T__43
-T__44
-T__45
-T__46
-T__47
-T__48
-T__49
-T__50
-T__51
-T__52
-T__53
-T__54
-T__55
-T__56
-T__57
-T__58
-T__59
-T__60
-T__61
-T__62
-T__63
-T__64
-T__65
-T__66
-T__67
-T__68
-T__69
-T__70
-T__71
-T__72
-T__73
-T__74
-T__75
-T__76
-T__77
-NEWLINE
-OPEN_BRACK
-CLOSE_BRACK
-OPEN_PAREN
-CLOSE_PAREN
-SKIP_
-SPACES
-LINE_JOINING
-RN
-BLOCK_COMMENT
-LINE_COMMENT
-StringLiteral
-Shortstring
-ShortstringElem
-ShortstringChar
-Longstring
-LongstringElem
-LongstringChar
-StringEscapeSeq
-FloatLiteral
-UintLiteral
-HexUintLiteral
-IntLiteral
-BoolLiteral
-Identifier
-NonVerticalLineChar
-Digit
-HexDigit
-IdStartChar
-IdChar
-
-channel names:
-DEFAULT_TOKEN_CHANNEL
-HIDDEN
-
-mode names:
-DEFAULT_MODE
-
-atn:
-[4, 0, 93, 830, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 3, 78, 604, 8, 78, 1, 78, 1, 78, 3, 78, 608, 8, 78, 1, 78, 3, 78, 611, 8, 78, 3, 78, 613, 8, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 3, 83, 631, 8, 83, 1, 83, 1, 83, 1, 84, 4, 84, 636, 8, 84, 11, 84, 12, 84, 637, 1, 85, 1, 85, 3, 85, 642, 8, 85, 1, 85, 3, 85, 645, 8, 85, 1, 85, 1, 85, 1, 86, 3, 86, 650, 8, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 5, 87, 658, 8, 87, 10, 87, 12, 87, 661, 9, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 5, 88, 670, 8, 88, 10, 88, 12, 88, 673, 9, 88, 1, 88, 1, 88, 1, 89, 1, 89, 3, 89, 679, 8, 89, 1, 90, 1, 90, 5, 90, 683, 8, 90, 10, 90, 12, 90, 686, 9, 90, 1, 90, 1, 90, 1, 90, 5, 90, 691, 8, 90, 10, 90, 12, 90, 694, 9, 90, 1, 90, 3, 90, 697, 8, 90, 1, 91, 1, 91, 3, 91, 701, 8, 91, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 5, 93, 710, 8, 93, 10, 93, 12, 93, 713, 9, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 5, 93, 723, 8, 93, 10, 93, 12, 93, 726, 9, 93, 1, 93, 1, 93, 1, 93, 3, 93, 731, 8, 93, 1, 94, 1, 94, 3, 94, 735, 8, 94, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 743, 8, 96, 1, 97, 3, 97, 746, 8, 97, 1, 97, 5, 97, 749, 8, 97, 10, 97, 12, 97, 752, 9, 97, 1, 97, 1, 97, 4, 97, 756, 8, 97, 11, 97, 12, 97, 757, 1, 97, 1, 97, 3, 97, 762, 8, 97, 1, 97, 4, 97, 765, 8, 97, 11, 97, 12, 97, 766, 3, 97, 769, 8, 97, 1, 98, 4, 98, 772, 8, 98, 11, 98, 12, 98, 773, 1, 99, 1, 99, 1, 99, 1, 99, 4, 99, 780, 8, 99, 11, 99, 12, 99, 781, 1, 100, 1, 100, 4, 100, 786, 8, 100, 11, 100, 12, 100, 787, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 799, 8, 101, 1, 102, 1, 102, 5, 102, 803, 8, 102, 10, 102, 12, 102, 806, 9, 102, 1, 102, 1, 102, 4, 102, 810, 8, 102, 11, 102, 12, 102, 811, 1, 102, 1, 102, 3, 102, 816, 8, 102, 1, 103, 1, 103, 1, 104, 1, 104, 1, 105, 1, 105, 1, 106, 3, 106, 825, 8, 106, 1, 107, 1, 107, 3, 107, 829, 8, 107, 1, 659, 0, 108, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 0, 171, 0, 173, 0, 175, 85, 177, 86, 179, 87, 181, 0, 183, 0, 185, 0, 187, 0, 189, 0, 191, 0, 193, 0, 195, 88, 197, 89, 199, 90, 201, 91, 203, 92, 205, 93, 207, 0, 209, 0, 211, 0, 213, 0, 215, 0, 1, 0, 11, 2, 0, 9, 9, 32, 32, 2, 0, 10, 10, 12, 13, 5, 0, 10, 10, 13, 13, 34, 34, 39, 39, 92, 92, 1, 0, 92, 92, 2, 0, 43, 43, 45, 45, 2, 0, 69, 69, 101, 101, 1, 0, 124, 124, 1, 0, 48, 57, 3, 0, 48, 57, 65, 70, 97, 102, 295, 0, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 577, 592, 705, 710, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 1013, 1015, 1153, 1162, 1230, 1232, 1273, 1280, 1295, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1901, 1920, 1957, 1969, 1969, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2429, 2429, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4346, 4348, 4348, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6569, 6593, 6599, 6656, 6678, 7424, 7615, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8340, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8497, 8499, 8505, 8508, 8511, 8517, 8521, 8544, 8579, 11264, 11310, 11312, 11358, 11392, 11492, 11520, 11557, 11568, 11621, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12588, 12593, 12686, 12704, 12727, 12784, 12799, 13312, 19893, 19968, 40891, 40960, 42124, 43008, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 44032, 55203, 63744, 64045, 64048, 64106, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 148, 0, 48, 57, 768, 879, 1155, 1158, 1425, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1552, 1557, 1611, 1630, 1632, 1641, 1648, 1648, 1750, 1756, 1759, 1764, 1767, 1768, 1770, 1773, 1776, 1785, 1809, 1809, 1840, 1866, 1958, 1968, 2305, 2307, 2364, 2364, 2366, 2381, 2385, 2388, 2402, 2403, 2406, 2415, 2433, 2435, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2530, 2531, 2534, 2543, 2561, 2563, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2662, 2673, 2689, 2691, 2748, 2748, 2750, 2757, 2759, 2761, 2763, 2765, 2786, 2787, 2790, 2799, 2817, 2819, 2876, 2876, 2878, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2918, 2927, 2946, 2946, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3046, 3055, 3073, 3075, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3174, 3183, 3202, 3203, 3260, 3260, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3302, 3311, 3330, 3331, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3430, 3439, 3458, 3459, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3633, 3633, 3636, 3642, 3655, 3662, 3664, 3673, 3761, 3761, 3764, 3769, 3771, 3772, 3784, 3789, 3792, 3801, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3903, 3953, 3972, 3974, 3975, 3984, 3991, 3993, 4028, 4038, 4038, 4140, 4146, 4150, 4153, 4160, 4169, 4182, 4185, 4959, 4959, 4969, 4977, 5906, 5908, 5938, 5940, 5970, 5971, 6002, 6003, 6070, 6099, 6109, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6313, 6313, 6432, 6443, 6448, 6459, 6470, 6479, 6576, 6592, 6600, 6601, 6608, 6617, 6679, 6683, 7616, 7619, 8255, 8256, 8276, 8276, 8400, 8412, 8417, 8417, 8421, 8427, 12330, 12335, 12441, 12442, 43010, 43010, 43014, 43014, 43019, 43019, 43043, 43047, 64286, 64286, 65024, 65039, 65056, 65059, 65075, 65076, 65101, 65103, 65296, 65305, 65343, 65343, 849, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 1, 217, 1, 0, 0, 0, 3, 224, 1, 0, 0, 0, 5, 226, 1, 0, 0, 0, 7, 231, 1, 0, 0, 0, 9, 234, 1, 0, 0, 0, 11, 237, 1, 0, 0, 0, 13, 242, 1, 0, 0, 0, 15, 245, 1, 0, 0, 0, 17, 247, 1, 0, 0, 0, 19, 249, 1, 0, 0, 0, 21, 254, 1, 0, 0, 0, 23, 256, 1, 0, 0, 0, 25, 258, 1, 0, 0, 0, 27, 261, 1, 0, 0, 0, 29, 268, 1, 0, 0, 0, 31, 277, 1, 0, 0, 0, 33, 283, 1, 0, 0, 0, 35, 292, 1, 0, 0, 0, 37, 299, 1, 0, 0, 0, 39, 308, 1, 0, 0, 0, 41, 315, 1, 0, 0, 0, 43, 322, 1, 0, 0, 0, 45, 327, 1, 0, 0, 0, 47, 331, 1, 0, 0, 0, 49, 336, 1, 0, 0, 0, 51, 342, 1, 0, 0, 0, 53, 347, 1, 0, 0, 0, 55, 354, 1, 0, 0, 0, 57, 360, 1, 0, 0, 0, 59, 363, 1, 0, 0, 0, 61, 365, 1, 0, 0, 0, 63, 368, 1, 0, 0, 0, 65, 373, 1, 0, 0, 0, 67, 378, 1, 0, 0, 0, 69, 386, 1, 0, 0, 0, 71, 392, 1, 0, 0, 0, 73, 396, 1, 0, 0, 0, 75, 403, 1, 0, 0, 0, 77, 408, 1, 0, 0, 0, 79, 413, 1, 0, 0, 0, 81, 421, 1, 0, 0, 0, 83, 426, 1, 0, 0, 0, 85, 441, 1, 0, 0, 0, 87, 444, 1, 0, 0, 0, 89, 447, 1, 0, 0, 0, 91, 454, 1, 0, 0, 0, 93, 461, 1, 0, 0, 0, 95, 470, 1, 0, 0, 0, 97, 475, 1, 0, 0, 0, 99, 480, 1, 0, 0, 0, 101, 485, 1, 0, 0, 0, 103, 491, 1, 0, 0, 0, 105, 495, 1, 0, 0, 0, 107, 498, 1, 0, 0, 0, 109, 509, 1, 0, 0, 0, 111, 519, 1, 0, 0, 0, 113, 528, 1, 0, 0, 0, 115, 533, 1, 0, 0, 0, 117, 539, 1, 0, 0, 0, 119, 546, 1, 0, 0, 0, 121, 552, 1, 0, 0, 0, 123, 554, 1, 0, 0, 0, 125, 557, 1, 0, 0, 0, 127, 560, 1, 0, 0, 0, 129, 564, 1, 0, 0, 0, 131, 568, 1, 0, 0, 0, 133, 571, 1, 0, 0, 0, 135, 573, 1, 0, 0, 0, 137, 576, 1, 0, 0, 0, 139, 578, 1, 0, 0, 0, 141, 581, 1, 0, 0, 0, 143, 584, 1, 0, 0, 0, 145, 586, 1, 0, 0, 0, 147, 588, 1, 0, 0, 0, 149, 590, 1, 0, 0, 0, 151, 592, 1, 0, 0, 0, 153, 594, 1, 0, 0, 0, 155, 597, 1, 0, 0, 0, 157, 612, 1, 0, 0, 0, 159, 616, 1, 0, 0, 0, 161, 619, 1, 0, 0, 0, 163, 622, 1, 0, 0, 0, 165, 625, 1, 0, 0, 0, 167, 630, 1, 0, 0, 0, 169, 635, 1, 0, 0, 0, 171, 639, 1, 0, 0, 0, 173, 649, 1, 0, 0, 0, 175, 653, 1, 0, 0, 0, 177, 667, 1, 0, 0, 0, 179, 678, 1, 0, 0, 0, 181, 696, 1, 0, 0, 0, 183, 700, 1, 0, 0, 0, 185, 702, 1, 0, 0, 0, 187, 730, 1, 0, 0, 0, 189, 734, 1, 0, 0, 0, 191, 736, 1, 0, 0, 0, 193, 742, 1, 0, 0, 0, 195, 745, 1, 0, 0, 0, 197, 771, 1, 0, 0, 0, 199, 775, 1, 0, 0, 0, 201, 783, 1, 0, 0, 0, 203, 798, 1, 0, 0, 0, 205, 815, 1, 0, 0, 0, 207, 817, 1, 0, 0, 0, 209, 819, 1, 0, 0, 0, 211, 821, 1, 0, 0, 0, 213, 824, 1, 0, 0, 0, 215, 828, 1, 0, 0, 0, 217, 218, 5, 105, 0, 0, 218, 219, 5, 109, 0, 0, 219, 220, 5, 112, 0, 0, 220, 221, 5, 111, 0, 0, 221, 222, 5, 114, 0, 0, 222, 223, 5, 116, 0, 0, 223, 2, 1, 0, 0, 0, 224, 225, 5, 46, 0, 0, 225, 4, 1, 0, 0, 0, 226, 227, 5, 116, 0, 0, 227, 228, 5, 121, 0, 0, 228, 229, 5, 112, 0, 0, 229, 230, 5, 101, 0, 0, 230, 6, 1, 0, 0, 0, 231, 232, 5, 105, 0, 0, 232, 233, 5, 115, 0, 0, 233, 8, 1, 0, 0, 0, 234, 235, 5, 83, 0, 0, 235, 236, 5, 73, 0, 0, 236, 10, 1, 0, 0, 0, 237, 238, 5, 117, 0, 0, 238, 239, 5, 110, 0, 0, 239, 240, 5, 105, 0, 0, 240, 241, 5, 116, 0, 0, 241, 12, 1, 0, 0, 0, 242, 243, 5, 111, 0, 0, 243, 244, 5, 102, 0, 0, 244, 14, 1, 0, 0, 0, 245, 246, 5, 44, 0, 0, 246, 16, 1, 0, 0, 0, 247, 248, 5, 58, 0, 0, 248, 18, 1, 0, 0, 0, 249, 250, 5, 101, 0, 0, 250, 251, 5, 110, 0, 0, 251, 252, 5, 117, 0, 0, 252, 253, 5, 109, 0, 0, 253, 20, 1, 0, 0, 0, 254, 255, 5, 61, 0, 0, 255, 22, 1, 0, 0, 0, 256, 257, 5, 33, 0, 0, 257, 24, 1, 0, 0, 0, 258, 259, 5, 61, 0, 0, 259, 260, 5, 61, 0, 0, 260, 26, 1, 0, 0, 0, 261, 262, 5, 115, 0, 0, 262, 263, 5, 116, 0, 0, 263, 264, 5, 114, 0, 0, 264, 265, 5, 117, 0, 0, 265, 266, 5, 99, 0, 0, 266, 267, 5, 116, 0, 0, 267, 28, 1, 0, 0, 0, 268, 269, 5, 105, 0, 0, 269, 270, 5, 110, 0, 0, 270, 271, 5, 104, 0, 0, 271, 272, 5, 101, 0, 0, 272, 273, 5, 114, 0, 0, 273, 274, 5, 105, 0, 0, 274, 275, 5, 116, 0, 0, 275, 276, 5, 115, 0, 0, 276, 30, 1, 0, 0, 0, 277, 278, 5, 97, 0, 0, 278, 279, 5, 99, 0, 0, 279, 280, 5, 116, 0, 0, 280, 281, 5, 111, 0, 0, 281, 282, 5, 114, 0, 0, 282, 32, 1, 0, 0, 0, 283, 284, 5, 115, 0, 0, 284, 285, 5, 99, 0, 0, 285, 286, 5, 101, 0, 0, 286, 287, 5, 110, 0, 0, 287, 288, 5, 97, 0, 0, 288, 289, 5, 114, 0, 0, 289, 290, 5, 105, 0, 0, 290, 291, 5, 111, 0, 0, 291, 34, 1, 0, 0, 0, 292, 293, 5, 97, 0, 0, 293, 294, 5, 99, 0, 0, 294, 295, 5, 116, 0, 0, 295, 296, 5, 105, 0, 0, 296, 297, 5, 111, 0, 0, 297, 298, 5, 110, 0, 0, 298, 36, 1, 0, 0, 0, 299, 300, 5, 109, 0, 0, 300, 301, 5, 111, 0, 0, 301, 302, 5, 100, 0, 0, 302, 303, 5, 105, 0, 0, 303, 304, 5, 102, 0, 0, 304, 305, 5, 105, 0, 0, 305, 306, 5, 101, 0, 0, 306, 307, 5, 114, 0, 0, 307, 38, 1, 0, 0, 0, 308, 309, 5, 101, 0, 0, 309, 310, 5, 120, 0, 0, 310, 311, 5, 116, 0, 0, 311, 312, 5, 101, 0, 0, 312, 313, 5, 110, 0, 0, 313, 314, 5, 100, 0, 0, 314, 40, 1, 0, 0, 0, 315, 316, 5, 103, 0, 0, 316, 317, 5, 108, 0, 0, 317, 318, 5, 111, 0, 0, 318, 319, 5, 98, 0, 0, 319, 320, 5, 97, 0, 0, 320, 321, 5, 108, 0, 0, 321, 42, 1, 0, 0, 0, 322, 323, 5, 108, 0, 0, 323, 324, 5, 105, 0, 0, 324, 325, 5, 115, 0, 0, 325, 326, 5, 116, 0, 0, 326, 44, 1, 0, 0, 0, 327, 328, 5, 105, 0, 0, 328, 329, 5, 110, 0, 0, 329, 330, 5, 116, 0, 0, 330, 46, 1, 0, 0, 0, 331, 332, 5, 117, 0, 0, 332, 333, 5, 105, 0, 0, 333, 334, 5, 110, 0, 0, 334, 335, 5, 116, 0, 0, 335, 48, 1, 0, 0, 0, 336, 337, 5, 102, 0, 0, 337, 338, 5, 108, 0, 0, 338, 339, 5, 111, 0, 0, 339, 340, 5, 97, 0, 0, 340, 341, 5, 116, 0, 0, 341, 50, 1, 0, 0, 0, 342, 343, 5, 98, 0, 0, 343, 344, 5, 111, 0, 0, 344, 345, 5, 111, 0, 0, 345, 346, 5, 108, 0, 0, 346, 52, 1, 0, 0, 0, 347, 348, 5, 115, 0, 0, 348, 349, 5, 116, 0, 0, 349, 350, 5, 114, 0, 0, 350, 351, 5, 105, 0, 0, 351, 352, 5, 110, 0, 0, 352, 353, 5, 103, 0, 0, 353, 54, 1, 0, 0, 0, 354, 355, 5, 101, 0, 0, 355, 356, 5, 118, 0, 0, 356, 357, 5, 101, 0, 0, 357, 358, 5, 110, 0, 0, 358, 359, 5, 116, 0, 0, 359, 56, 1, 0, 0, 0, 360, 361, 5, 105, 0, 0, 361, 362, 5, 102, 0, 0, 362, 58, 1, 0, 0, 0, 363, 364, 5, 64, 0, 0, 364, 60, 1, 0, 0, 0, 365, 366, 5, 97, 0, 0, 366, 367, 5, 115, 0, 0, 367, 62, 1, 0, 0, 0, 368, 369, 5, 114, 0, 0, 369, 370, 5, 105, 0, 0, 370, 371, 5, 115, 0, 0, 371, 372, 5, 101, 0, 0, 372, 64, 1, 0, 0, 0, 373, 374, 5, 102, 0, 0, 374, 375, 5, 97, 0, 0, 375, 376, 5, 108, 0, 0, 376, 377, 5, 108, 0, 0, 377, 66, 1, 0, 0, 0, 378, 379, 5, 101, 0, 0, 379, 380, 5, 108, 0, 0, 380, 381, 5, 97, 0, 0, 381, 382, 5, 112, 0, 0, 382, 383, 5, 115, 0, 0, 383, 384, 5, 101, 0, 0, 384, 385, 5, 100, 0, 0, 385, 68, 1, 0, 0, 0, 386, 387, 5, 101, 0, 0, 387, 388, 5, 118, 0, 0, 388, 389, 5, 101, 0, 0, 389, 390, 5, 114, 0, 0, 390, 391, 5, 121, 0, 0, 391, 70, 1, 0, 0, 0, 392, 393, 5, 118, 0, 0, 393, 394, 5, 97, 0, 0, 394, 395, 5, 114, 0, 0, 395, 72, 1, 0, 0, 0, 396, 397, 5, 115, 0, 0, 397, 398, 5, 97, 0, 0, 398, 399, 5, 109, 0, 0, 399, 400, 5, 112, 0, 0, 400, 401, 5, 108, 0, 0, 401, 402, 5, 101, 0, 0, 402, 74, 1, 0, 0, 0, 403, 404, 5, 119, 0, 0, 404, 405, 5, 105, 0, 0, 405, 406, 5, 116, 0, 0, 406, 407, 5, 104, 0, 0, 407, 76, 1, 0, 0, 0, 408, 409, 5, 107, 0, 0, 409, 410, 5, 101, 0, 0, 410, 411, 5, 101, 0, 0, 411, 412, 5, 112, 0, 0, 412, 78, 1, 0, 0, 0, 413, 414, 5, 100, 0, 0, 414, 415, 5, 101, 0, 0, 415, 416, 5, 102, 0, 0, 416, 417, 5, 97, 0, 0, 417, 418, 5, 117, 0, 0, 418, 419, 5, 108, 0, 0, 419, 420, 5, 116, 0, 0, 420, 80, 1, 0, 0, 0, 421, 422, 5, 104, 0, 0, 422, 423, 5, 97, 0, 0, 423, 424, 5, 114, 0, 0, 424, 425, 5, 100, 0, 0, 425, 82, 1, 0, 0, 0, 426, 427, 5, 114, 0, 0, 427, 428, 5, 101, 0, 0, 428, 429, 5, 109, 0, 0, 429, 430, 5, 111, 0, 0, 430, 431, 5, 118, 0, 0, 431, 432, 5, 101, 0, 0, 432, 433, 5, 95, 0, 0, 433, 434, 5, 100, 0, 0, 434, 435, 5, 101, 0, 0, 435, 436, 5, 102, 0, 0, 436, 437, 5, 97, 0, 0, 437, 438, 5, 117, 0, 0, 438, 439, 5, 108, 0, 0, 439, 440, 5, 116, 0, 0, 440, 84, 1, 0, 0, 0, 441, 442, 5, 111, 0, 0, 442, 443, 5, 110, 0, 0, 443, 86, 1, 0, 0, 0, 444, 445, 5, 100, 0, 0, 445, 446, 5, 111, 0, 0, 446, 88, 1, 0, 0, 0, 447, 448, 5, 115, 0, 0, 448, 449, 5, 101, 0, 0, 449, 450, 5, 114, 0, 0, 450, 451, 5, 105, 0, 0, 451, 452, 5, 97, 0, 0, 452, 453, 5, 108, 0, 0, 453, 90, 1, 0, 0, 0, 454, 455, 5, 111, 0, 0, 455, 456, 5, 110, 0, 0, 456, 457, 5, 101, 0, 0, 457, 458, 5, 95, 0, 0, 458, 459, 5, 111, 0, 0, 459, 460, 5, 102, 0, 0, 460, 92, 1, 0, 0, 0, 461, 462, 5, 112, 0, 0, 462, 463, 5, 97, 0, 0, 463, 464, 5, 114, 0, 0, 464, 465, 5, 97, 0, 0, 465, 466, 5, 108, 0, 0, 466, 467, 5, 108, 0, 0, 467, 468, 5, 101, 0, 0, 468, 469, 5, 108, 0, 0, 469, 94, 1, 0, 0, 0, 470, 471, 5, 119, 0, 0, 471, 472, 5, 97, 0, 0, 472, 473, 5, 105, 0, 0, 473, 474, 5, 116, 0, 0, 474, 96, 1, 0, 0, 0, 475, 476, 5, 101, 0, 0, 476, 477, 5, 109, 0, 0, 477, 478, 5, 105, 0, 0, 478, 479, 5, 116, 0, 0, 479, 98, 1, 0, 0, 0, 480, 481, 5, 99, 0, 0, 481, 482, 5, 97, 0, 0, 482, 483, 5, 108, 0, 0, 483, 484, 5, 108, 0, 0, 484, 100, 1, 0, 0, 0, 485, 486, 5, 117, 0, 0, 486, 487, 5, 110, 0, 0, 487, 488, 5, 116, 0, 0, 488, 489, 5, 105, 0, 0, 489, 490, 5, 108, 0, 0, 490, 102, 1, 0, 0, 0, 491, 492, 5, 100, 0, 0, 492, 493, 5, 101, 0, 0, 493, 494, 5, 102, 0, 0, 494, 104, 1, 0, 0, 0, 495, 496, 5, 45, 0, 0, 496, 497, 5, 62, 0, 0, 497, 106, 1, 0, 0, 0, 498, 499, 5, 101, 0, 0, 499, 500, 5, 120, 0, 0, 500, 501, 5, 112, 0, 0, 501, 502, 5, 114, 0, 0, 502, 503, 5, 101, 0, 0, 503, 504, 5, 115, 0, 0, 504, 505, 5, 115, 0, 0, 505, 506, 5, 105, 0, 0, 506, 507, 5, 111, 0, 0, 507, 508, 5, 110, 0, 0, 508, 108, 1, 0, 0, 0, 509, 510, 5, 117, 0, 0, 510, 511, 5, 110, 0, 0, 511, 512, 5, 100, 0, 0, 512, 513, 5, 101, 0, 0, 513, 514, 5, 102, 0, 0, 514, 515, 5, 105, 0, 0, 515, 516, 5, 110, 0, 0, 516, 517, 5, 101, 0, 0, 517, 518, 5, 100, 0, 0, 518, 110, 1, 0, 0, 0, 519, 520, 5, 101, 0, 0, 520, 521, 5, 120, 0, 0, 521, 522, 5, 116, 0, 0, 522, 523, 5, 101, 0, 0, 523, 524, 5, 114, 0, 0, 524, 525, 5, 110, 0, 0, 525, 526, 5, 97, 0, 0, 526, 527, 5, 108, 0, 0, 527, 112, 1, 0, 0, 0, 528, 529, 5, 111, 0, 0, 529, 530, 5, 110, 0, 0, 530, 531, 5, 108, 0, 0, 531, 532, 5, 121, 0, 0, 532, 114, 1, 0, 0, 0, 533, 534, 5, 99, 0, 0, 534, 535, 5, 111, 0, 0, 535, 536, 5, 118, 0, 0, 536, 537, 5, 101, 0, 0, 537, 538, 5, 114, 0, 0, 538, 116, 1, 0, 0, 0, 539, 540, 5, 114, 0, 0, 540, 541, 5, 101, 0, 0, 541, 542, 5, 99, 0, 0, 542, 543, 5, 111, 0, 0, 543, 544, 5, 114, 0, 0, 544, 545, 5, 100, 0, 0, 545, 118, 1, 0, 0, 0, 546, 547, 5, 114, 0, 0, 547, 548, 5, 97, 0, 0, 548, 549, 5, 110, 0, 0, 549, 550, 5, 103, 0, 0, 550, 551, 5, 101, 0, 0, 551, 120, 1, 0, 0, 0, 552, 553, 5, 63, 0, 0, 553, 122, 1, 0, 0, 0, 554, 555, 5, 61, 0, 0, 555, 556, 5, 62, 0, 0, 556, 124, 1, 0, 0, 0, 557, 558, 5, 111, 0, 0, 558, 559, 5, 114, 0, 0, 559, 126, 1, 0, 0, 0, 560, 561, 5, 97, 0, 0, 561, 562, 5, 110, 0, 0, 562, 563, 5, 100, 0, 0, 563, 128, 1, 0, 0, 0, 564, 565, 5, 110, 0, 0, 565, 566, 5, 111, 0, 0, 566, 567, 5, 116, 0, 0, 567, 130, 1, 0, 0, 0, 568, 569, 5, 33, 0, 0, 569, 570, 5, 61, 0, 0, 570, 132, 1, 0, 0, 0, 571, 572, 5, 60, 0, 0, 572, 134, 1, 0, 0, 0, 573, 574, 5, 60, 0, 0, 574, 575, 5, 61, 0, 0, 575, 136, 1, 0, 0, 0, 576, 577, 5, 62, 0, 0, 577, 138, 1, 0, 0, 0, 578, 579, 5, 62, 0, 0, 579, 580, 5, 61, 0, 0, 580, 140, 1, 0, 0, 0, 581, 582, 5, 105, 0, 0, 582, 583, 5, 110, 0, 0, 583, 142, 1, 0, 0, 0, 584, 585, 5, 43, 0, 0, 585, 144, 1, 0, 0, 0, 586, 587, 5, 45, 0, 0, 587, 146, 1, 0, 0, 0, 588, 589, 5, 42, 0, 0, 589, 148, 1, 0, 0, 0, 590, 591, 5, 47, 0, 0, 591, 150, 1, 0, 0, 0, 592, 593, 5, 37, 0, 0, 593, 152, 1, 0, 0, 0, 594, 595, 5, 105, 0, 0, 595, 596, 5, 116, 0, 0, 596, 154, 1, 0, 0, 0, 597, 598, 5, 46, 0, 0, 598, 599, 5, 46, 0, 0, 599, 156, 1, 0, 0, 0, 600, 601, 4, 78, 0, 0, 601, 613, 3, 169, 84, 0, 602, 604, 5, 13, 0, 0, 603, 602, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 608, 5, 10, 0, 0, 606, 608, 2, 12, 13, 0, 607, 603, 1, 0, 0, 0, 607, 606, 1, 0, 0, 0, 608, 610, 1, 0, 0, 0, 609, 611, 3, 169, 84, 0, 610, 609, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 613, 1, 0, 0, 0, 612, 600, 1, 0, 0, 0, 612, 607, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 615, 6, 78, 0, 0, 615, 158, 1, 0, 0, 0, 616, 617, 5, 91, 0, 0, 617, 618, 6, 79, 1, 0, 618, 160, 1, 0, 0, 0, 619, 620, 5, 93, 0, 0, 620, 621, 6, 80, 2, 0, 621, 162, 1, 0, 0, 0, 622, 623, 5, 40, 0, 0, 623, 624, 6, 81, 3, 0, 624, 164, 1, 0, 0, 0, 625, 626, 5, 41, 0, 0, 626, 627, 6, 82, 4, 0, 627, 166, 1, 0, 0, 0, 628, 631, 3, 169, 84, 0, 629, 631, 3, 171, 85, 0, 630, 628, 1, 0, 0, 0, 630, 629, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 633, 6, 83, 5, 0, 633, 168, 1, 0, 0, 0, 634, 636, 7, 0, 0, 0, 635, 634, 1, 0, 0, 0, 636, 637, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 170, 1, 0, 0, 0, 639, 641, 5, 92, 0, 0, 640, 642, 3, 169, 84, 0, 641, 640, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 644, 1, 0, 0, 0, 643, 645, 5, 13, 0, 0, 644, 643, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 646, 1, 0, 0, 0, 646, 647, 5, 10, 0, 0, 647, 172, 1, 0, 0, 0, 648, 650, 5, 13, 0, 0, 649, 648, 1, 0, 0, 0, 649, 650, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 652, 5, 10, 0, 0, 652, 174, 1, 0, 0, 0, 653, 654, 5, 47, 0, 0, 654, 655, 5, 42, 0, 0, 655, 659, 1, 0, 0, 0, 656, 658, 9, 0, 0, 0, 657, 656, 1, 0, 0, 0, 658, 661, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 660, 662, 1, 0, 0, 0, 661, 659, 1, 0, 0, 0, 662, 663, 5, 42, 0, 0, 663, 664, 5, 47, 0, 0, 664, 665, 1, 0, 0, 0, 665, 666, 6, 87, 5, 0, 666, 176, 1, 0, 0, 0, 667, 671, 5, 35, 0, 0, 668, 670, 8, 1, 0, 0, 669, 668, 1, 0, 0, 0, 670, 673, 1, 0, 0, 0, 671, 669, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0, 672, 674, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 674, 675, 6, 88, 5, 0, 675, 178, 1, 0, 0, 0, 676, 679, 3, 181, 90, 0, 677, 679, 3, 187, 93, 0, 678, 676, 1, 0, 0, 0, 678, 677, 1, 0, 0, 0, 679, 180, 1, 0, 0, 0, 680, 684, 5, 34, 0, 0, 681, 683, 3, 183, 91, 0, 682, 681, 1, 0, 0, 0, 683, 686, 1, 0, 0, 0, 684, 682, 1, 0, 0, 0, 684, 685, 1, 0, 0, 0, 685, 687, 1, 0, 0, 0, 686, 684, 1, 0, 0, 0, 687, 697, 5, 34, 0, 0, 688, 692, 5, 39, 0, 0, 689, 691, 3, 183, 91, 0, 690, 689, 1, 0, 0, 0, 691, 694, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 695, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 695, 697, 5, 39, 0, 0, 696, 680, 1, 0, 0, 0, 696, 688, 1, 0, 0, 0, 697, 182, 1, 0, 0, 0, 698, 701, 3, 185, 92, 0, 699, 701, 3, 193, 96, 0, 700, 698, 1, 0, 0, 0, 700, 699, 1, 0, 0, 0, 701, 184, 1, 0, 0, 0, 702, 703, 8, 2, 0, 0, 703, 186, 1, 0, 0, 0, 704, 705, 5, 34, 0, 0, 705, 706, 5, 34, 0, 0, 706, 707, 5, 34, 0, 0, 707, 711, 1, 0, 0, 0, 708, 710, 3, 189, 94, 0, 709, 708, 1, 0, 0, 0, 710, 713, 1, 0, 0, 0, 711, 709, 1, 0, 0, 0, 711, 712, 1, 0, 0, 0, 712, 714, 1, 0, 0, 0, 713, 711, 1, 0, 0, 0, 714, 715, 5, 34, 0, 0, 715, 716, 5, 34, 0, 0, 716, 731, 5, 34, 0, 0, 717, 718, 5, 39, 0, 0, 718, 719, 5, 39, 0, 0, 719, 720, 5, 39, 0, 0, 720, 724, 1, 0, 0, 0, 721, 723, 3, 189, 94, 0, 722, 721, 1, 0, 0, 0, 723, 726, 1, 0, 0, 0, 724, 722, 1, 0, 0, 0, 724, 725, 1, 0, 0, 0, 725, 727, 1, 0, 0, 0, 726, 724, 1, 0, 0, 0, 727, 728, 5, 39, 0, 0, 728, 729, 5, 39, 0, 0, 729, 731, 5, 39, 0, 0, 730, 704, 1, 0, 0, 0, 730, 717, 1, 0, 0, 0, 731, 188, 1, 0, 0, 0, 732, 735, 3, 191, 95, 0, 733, 735, 3, 193, 96, 0, 734, 732, 1, 0, 0, 0, 734, 733, 1, 0, 0, 0, 735, 190, 1, 0, 0, 0, 736, 737, 8, 3, 0, 0, 737, 192, 1, 0, 0, 0, 738, 739, 5, 92, 0, 0, 739, 743, 9, 0, 0, 0, 740, 741, 5, 92, 0, 0, 741, 743, 3, 173, 86, 0, 742, 738, 1, 0, 0, 0, 742, 740, 1, 0, 0, 0, 743, 194, 1, 0, 0, 0, 744, 746, 7, 4, 0, 0, 745, 744, 1, 0, 0, 0, 745, 746, 1, 0, 0, 0, 746, 750, 1, 0, 0, 0, 747, 749, 3, 209, 104, 0, 748, 747, 1, 0, 0, 0, 749, 752, 1, 0, 0, 0, 750, 748, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 753, 1, 0, 0, 0, 752, 750, 1, 0, 0, 0, 753, 755, 5, 46, 0, 0, 754, 756, 3, 209, 104, 0, 755, 754, 1, 0, 0, 0, 756, 757, 1, 0, 0, 0, 757, 755, 1, 0, 0, 0, 757, 758, 1, 0, 0, 0, 758, 768, 1, 0, 0, 0, 759, 761, 7, 5, 0, 0, 760, 762, 7, 4, 0, 0, 761, 760, 1, 0, 0, 0, 761, 762, 1, 0, 0, 0, 762, 764, 1, 0, 0, 0, 763, 765, 3, 209, 104, 0, 764, 763, 1, 0, 0, 0, 765, 766, 1, 0, 0, 0, 766, 764, 1, 0, 0, 0, 766, 767, 1, 0, 0, 0, 767, 769, 1, 0, 0, 0, 768, 759, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 196, 1, 0, 0, 0, 770, 772, 3, 209, 104, 0, 771, 770, 1, 0, 0, 0, 772, 773, 1, 0, 0, 0, 773, 771, 1, 0, 0, 0, 773, 774, 1, 0, 0, 0, 774, 198, 1, 0, 0, 0, 775, 776, 5, 48, 0, 0, 776, 777, 5, 120, 0, 0, 777, 779, 1, 0, 0, 0, 778, 780, 3, 211, 105, 0, 779, 778, 1, 0, 0, 0, 780, 781, 1, 0, 0, 0, 781, 779, 1, 0, 0, 0, 781, 782, 1, 0, 0, 0, 782, 200, 1, 0, 0, 0, 783, 785, 5, 45, 0, 0, 784, 786, 3, 209, 104, 0, 785, 784, 1, 0, 0, 0, 786, 787, 1, 0, 0, 0, 787, 785, 1, 0, 0, 0, 787, 788, 1, 0, 0, 0, 788, 202, 1, 0, 0, 0, 789, 790, 5, 116, 0, 0, 790, 791, 5, 114, 0, 0, 791, 792, 5, 117, 0, 0, 792, 799, 5, 101, 0, 0, 793, 794, 5, 102, 0, 0, 794, 795, 5, 97, 0, 0, 795, 796, 5, 108, 0, 0, 796, 797, 5, 115, 0, 0, 797, 799, 5, 101, 0, 0, 798, 789, 1, 0, 0, 0, 798, 793, 1, 0, 0, 0, 799, 204, 1, 0, 0, 0, 800, 804, 3, 213, 106, 0, 801, 803, 3, 215, 107, 0, 802, 801, 1, 0, 0, 0, 803, 806, 1, 0, 0, 0, 804, 802, 1, 0, 0, 0, 804, 805, 1, 0, 0, 0, 805, 816, 1, 0, 0, 0, 806, 804, 1, 0, 0, 0, 807, 809, 5, 124, 0, 0, 808, 810, 3, 207, 103, 0, 809, 808, 1, 0, 0, 0, 810, 811, 1, 0, 0, 0, 811, 809, 1, 0, 0, 0, 811, 812, 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 814, 5, 124, 0, 0, 814, 816, 1, 0, 0, 0, 815, 800, 1, 0, 0, 0, 815, 807, 1, 0, 0, 0, 816, 206, 1, 0, 0, 0, 817, 818, 8, 6, 0, 0, 818, 208, 1, 0, 0, 0, 819, 820, 7, 7, 0, 0, 820, 210, 1, 0, 0, 0, 821, 822, 7, 8, 0, 0, 822, 212, 1, 0, 0, 0, 823, 825, 7, 9, 0, 0, 824, 823, 1, 0, 0, 0, 825, 214, 1, 0, 0, 0, 826, 829, 3, 213, 106, 0, 827, 829, 7, 10, 0, 0, 828, 826, 1, 0, 0, 0, 828, 827, 1, 0, 0, 0, 829, 216, 1, 0, 0, 0, 37, 0, 603, 607, 610, 612, 630, 637, 641, 644, 649, 659, 671, 678, 684, 692, 696, 700, 711, 724, 730, 734, 742, 745, 750, 757, 761, 766, 768, 773, 781, 787, 798, 804, 811, 815, 824, 828, 6, 1, 78, 0, 1, 79, 1, 1, 80, 2, 1, 81, 3, 1, 82, 4, 6, 0, 0]
\ No newline at end of file
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.py b/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.py
deleted file mode 100644
index 60ed2b6..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.py
+++ /dev/null
@@ -1,8584 +0,0 @@
-# Generated from .\OpenSCENARIO2.g4 by ANTLR 4.10.1
-import sys
-from io import StringIO
-
-from antlr4 import *
-
-if sys.version_info[1] > 5:
- from typing import TextIO
-else:
- from typing.io import TextIO
-
-import importlib
-import re
-
-from antlr4.Token import CommonToken
-
-# Allow languages to extend the lexer and parser, by loading the parser dynamically
-module_path = __name__[:-5]
-language_name = __name__.split(".")[-1]
-language_name = language_name[:-5] # Remove Lexer from name
-LanguageParser = getattr(
- importlib.import_module("{}Parser".format(module_path)),
- "{}Parser".format(language_name),
-)
-
-
-def serializedATN():
- return [
- 4,
- 0,
- 93,
- 830,
- 6,
- -1,
- 2,
- 0,
- 7,
- 0,
- 2,
- 1,
- 7,
- 1,
- 2,
- 2,
- 7,
- 2,
- 2,
- 3,
- 7,
- 3,
- 2,
- 4,
- 7,
- 4,
- 2,
- 5,
- 7,
- 5,
- 2,
- 6,
- 7,
- 6,
- 2,
- 7,
- 7,
- 7,
- 2,
- 8,
- 7,
- 8,
- 2,
- 9,
- 7,
- 9,
- 2,
- 10,
- 7,
- 10,
- 2,
- 11,
- 7,
- 11,
- 2,
- 12,
- 7,
- 12,
- 2,
- 13,
- 7,
- 13,
- 2,
- 14,
- 7,
- 14,
- 2,
- 15,
- 7,
- 15,
- 2,
- 16,
- 7,
- 16,
- 2,
- 17,
- 7,
- 17,
- 2,
- 18,
- 7,
- 18,
- 2,
- 19,
- 7,
- 19,
- 2,
- 20,
- 7,
- 20,
- 2,
- 21,
- 7,
- 21,
- 2,
- 22,
- 7,
- 22,
- 2,
- 23,
- 7,
- 23,
- 2,
- 24,
- 7,
- 24,
- 2,
- 25,
- 7,
- 25,
- 2,
- 26,
- 7,
- 26,
- 2,
- 27,
- 7,
- 27,
- 2,
- 28,
- 7,
- 28,
- 2,
- 29,
- 7,
- 29,
- 2,
- 30,
- 7,
- 30,
- 2,
- 31,
- 7,
- 31,
- 2,
- 32,
- 7,
- 32,
- 2,
- 33,
- 7,
- 33,
- 2,
- 34,
- 7,
- 34,
- 2,
- 35,
- 7,
- 35,
- 2,
- 36,
- 7,
- 36,
- 2,
- 37,
- 7,
- 37,
- 2,
- 38,
- 7,
- 38,
- 2,
- 39,
- 7,
- 39,
- 2,
- 40,
- 7,
- 40,
- 2,
- 41,
- 7,
- 41,
- 2,
- 42,
- 7,
- 42,
- 2,
- 43,
- 7,
- 43,
- 2,
- 44,
- 7,
- 44,
- 2,
- 45,
- 7,
- 45,
- 2,
- 46,
- 7,
- 46,
- 2,
- 47,
- 7,
- 47,
- 2,
- 48,
- 7,
- 48,
- 2,
- 49,
- 7,
- 49,
- 2,
- 50,
- 7,
- 50,
- 2,
- 51,
- 7,
- 51,
- 2,
- 52,
- 7,
- 52,
- 2,
- 53,
- 7,
- 53,
- 2,
- 54,
- 7,
- 54,
- 2,
- 55,
- 7,
- 55,
- 2,
- 56,
- 7,
- 56,
- 2,
- 57,
- 7,
- 57,
- 2,
- 58,
- 7,
- 58,
- 2,
- 59,
- 7,
- 59,
- 2,
- 60,
- 7,
- 60,
- 2,
- 61,
- 7,
- 61,
- 2,
- 62,
- 7,
- 62,
- 2,
- 63,
- 7,
- 63,
- 2,
- 64,
- 7,
- 64,
- 2,
- 65,
- 7,
- 65,
- 2,
- 66,
- 7,
- 66,
- 2,
- 67,
- 7,
- 67,
- 2,
- 68,
- 7,
- 68,
- 2,
- 69,
- 7,
- 69,
- 2,
- 70,
- 7,
- 70,
- 2,
- 71,
- 7,
- 71,
- 2,
- 72,
- 7,
- 72,
- 2,
- 73,
- 7,
- 73,
- 2,
- 74,
- 7,
- 74,
- 2,
- 75,
- 7,
- 75,
- 2,
- 76,
- 7,
- 76,
- 2,
- 77,
- 7,
- 77,
- 2,
- 78,
- 7,
- 78,
- 2,
- 79,
- 7,
- 79,
- 2,
- 80,
- 7,
- 80,
- 2,
- 81,
- 7,
- 81,
- 2,
- 82,
- 7,
- 82,
- 2,
- 83,
- 7,
- 83,
- 2,
- 84,
- 7,
- 84,
- 2,
- 85,
- 7,
- 85,
- 2,
- 86,
- 7,
- 86,
- 2,
- 87,
- 7,
- 87,
- 2,
- 88,
- 7,
- 88,
- 2,
- 89,
- 7,
- 89,
- 2,
- 90,
- 7,
- 90,
- 2,
- 91,
- 7,
- 91,
- 2,
- 92,
- 7,
- 92,
- 2,
- 93,
- 7,
- 93,
- 2,
- 94,
- 7,
- 94,
- 2,
- 95,
- 7,
- 95,
- 2,
- 96,
- 7,
- 96,
- 2,
- 97,
- 7,
- 97,
- 2,
- 98,
- 7,
- 98,
- 2,
- 99,
- 7,
- 99,
- 2,
- 100,
- 7,
- 100,
- 2,
- 101,
- 7,
- 101,
- 2,
- 102,
- 7,
- 102,
- 2,
- 103,
- 7,
- 103,
- 2,
- 104,
- 7,
- 104,
- 2,
- 105,
- 7,
- 105,
- 2,
- 106,
- 7,
- 106,
- 2,
- 107,
- 7,
- 107,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0,
- 1,
- 1,
- 1,
- 1,
- 1,
- 2,
- 1,
- 2,
- 1,
- 2,
- 1,
- 2,
- 1,
- 2,
- 1,
- 3,
- 1,
- 3,
- 1,
- 3,
- 1,
- 4,
- 1,
- 4,
- 1,
- 4,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 6,
- 1,
- 6,
- 1,
- 6,
- 1,
- 7,
- 1,
- 7,
- 1,
- 8,
- 1,
- 8,
- 1,
- 9,
- 1,
- 9,
- 1,
- 9,
- 1,
- 9,
- 1,
- 9,
- 1,
- 10,
- 1,
- 10,
- 1,
- 11,
- 1,
- 11,
- 1,
- 12,
- 1,
- 12,
- 1,
- 12,
- 1,
- 13,
- 1,
- 13,
- 1,
- 13,
- 1,
- 13,
- 1,
- 13,
- 1,
- 13,
- 1,
- 13,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 15,
- 1,
- 15,
- 1,
- 15,
- 1,
- 15,
- 1,
- 15,
- 1,
- 15,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 1,
- 19,
- 1,
- 19,
- 1,
- 19,
- 1,
- 19,
- 1,
- 19,
- 1,
- 19,
- 1,
- 19,
- 1,
- 20,
- 1,
- 20,
- 1,
- 20,
- 1,
- 20,
- 1,
- 20,
- 1,
- 20,
- 1,
- 20,
- 1,
- 21,
- 1,
- 21,
- 1,
- 21,
- 1,
- 21,
- 1,
- 21,
- 1,
- 22,
- 1,
- 22,
- 1,
- 22,
- 1,
- 22,
- 1,
- 23,
- 1,
- 23,
- 1,
- 23,
- 1,
- 23,
- 1,
- 23,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 1,
- 25,
- 1,
- 25,
- 1,
- 25,
- 1,
- 25,
- 1,
- 25,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 27,
- 1,
- 27,
- 1,
- 27,
- 1,
- 27,
- 1,
- 27,
- 1,
- 27,
- 1,
- 28,
- 1,
- 28,
- 1,
- 28,
- 1,
- 29,
- 1,
- 29,
- 1,
- 30,
- 1,
- 30,
- 1,
- 30,
- 1,
- 31,
- 1,
- 31,
- 1,
- 31,
- 1,
- 31,
- 1,
- 31,
- 1,
- 32,
- 1,
- 32,
- 1,
- 32,
- 1,
- 32,
- 1,
- 32,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 34,
- 1,
- 34,
- 1,
- 34,
- 1,
- 34,
- 1,
- 34,
- 1,
- 34,
- 1,
- 35,
- 1,
- 35,
- 1,
- 35,
- 1,
- 35,
- 1,
- 36,
- 1,
- 36,
- 1,
- 36,
- 1,
- 36,
- 1,
- 36,
- 1,
- 36,
- 1,
- 36,
- 1,
- 37,
- 1,
- 37,
- 1,
- 37,
- 1,
- 37,
- 1,
- 37,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 41,
- 1,
- 42,
- 1,
- 42,
- 1,
- 42,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 45,
- 1,
- 45,
- 1,
- 45,
- 1,
- 45,
- 1,
- 45,
- 1,
- 45,
- 1,
- 45,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 1,
- 48,
- 1,
- 48,
- 1,
- 48,
- 1,
- 48,
- 1,
- 48,
- 1,
- 49,
- 1,
- 49,
- 1,
- 49,
- 1,
- 49,
- 1,
- 49,
- 1,
- 50,
- 1,
- 50,
- 1,
- 50,
- 1,
- 50,
- 1,
- 50,
- 1,
- 50,
- 1,
- 51,
- 1,
- 51,
- 1,
- 51,
- 1,
- 51,
- 1,
- 52,
- 1,
- 52,
- 1,
- 52,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 53,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 55,
- 1,
- 56,
- 1,
- 56,
- 1,
- 56,
- 1,
- 56,
- 1,
- 56,
- 1,
- 57,
- 1,
- 57,
- 1,
- 57,
- 1,
- 57,
- 1,
- 57,
- 1,
- 57,
- 1,
- 58,
- 1,
- 58,
- 1,
- 58,
- 1,
- 58,
- 1,
- 58,
- 1,
- 58,
- 1,
- 58,
- 1,
- 59,
- 1,
- 59,
- 1,
- 59,
- 1,
- 59,
- 1,
- 59,
- 1,
- 59,
- 1,
- 60,
- 1,
- 60,
- 1,
- 61,
- 1,
- 61,
- 1,
- 61,
- 1,
- 62,
- 1,
- 62,
- 1,
- 62,
- 1,
- 63,
- 1,
- 63,
- 1,
- 63,
- 1,
- 63,
- 1,
- 64,
- 1,
- 64,
- 1,
- 64,
- 1,
- 64,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 66,
- 1,
- 66,
- 1,
- 67,
- 1,
- 67,
- 1,
- 67,
- 1,
- 68,
- 1,
- 68,
- 1,
- 69,
- 1,
- 69,
- 1,
- 69,
- 1,
- 70,
- 1,
- 70,
- 1,
- 70,
- 1,
- 71,
- 1,
- 71,
- 1,
- 72,
- 1,
- 72,
- 1,
- 73,
- 1,
- 73,
- 1,
- 74,
- 1,
- 74,
- 1,
- 75,
- 1,
- 75,
- 1,
- 76,
- 1,
- 76,
- 1,
- 76,
- 1,
- 77,
- 1,
- 77,
- 1,
- 77,
- 1,
- 78,
- 1,
- 78,
- 1,
- 78,
- 3,
- 78,
- 604,
- 8,
- 78,
- 1,
- 78,
- 1,
- 78,
- 3,
- 78,
- 608,
- 8,
- 78,
- 1,
- 78,
- 3,
- 78,
- 611,
- 8,
- 78,
- 3,
- 78,
- 613,
- 8,
- 78,
- 1,
- 78,
- 1,
- 78,
- 1,
- 79,
- 1,
- 79,
- 1,
- 79,
- 1,
- 80,
- 1,
- 80,
- 1,
- 80,
- 1,
- 81,
- 1,
- 81,
- 1,
- 81,
- 1,
- 82,
- 1,
- 82,
- 1,
- 82,
- 1,
- 83,
- 1,
- 83,
- 3,
- 83,
- 631,
- 8,
- 83,
- 1,
- 83,
- 1,
- 83,
- 1,
- 84,
- 4,
- 84,
- 636,
- 8,
- 84,
- 11,
- 84,
- 12,
- 84,
- 637,
- 1,
- 85,
- 1,
- 85,
- 3,
- 85,
- 642,
- 8,
- 85,
- 1,
- 85,
- 3,
- 85,
- 645,
- 8,
- 85,
- 1,
- 85,
- 1,
- 85,
- 1,
- 86,
- 3,
- 86,
- 650,
- 8,
- 86,
- 1,
- 86,
- 1,
- 86,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 5,
- 87,
- 658,
- 8,
- 87,
- 10,
- 87,
- 12,
- 87,
- 661,
- 9,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 88,
- 1,
- 88,
- 5,
- 88,
- 670,
- 8,
- 88,
- 10,
- 88,
- 12,
- 88,
- 673,
- 9,
- 88,
- 1,
- 88,
- 1,
- 88,
- 1,
- 89,
- 1,
- 89,
- 3,
- 89,
- 679,
- 8,
- 89,
- 1,
- 90,
- 1,
- 90,
- 5,
- 90,
- 683,
- 8,
- 90,
- 10,
- 90,
- 12,
- 90,
- 686,
- 9,
- 90,
- 1,
- 90,
- 1,
- 90,
- 1,
- 90,
- 5,
- 90,
- 691,
- 8,
- 90,
- 10,
- 90,
- 12,
- 90,
- 694,
- 9,
- 90,
- 1,
- 90,
- 3,
- 90,
- 697,
- 8,
- 90,
- 1,
- 91,
- 1,
- 91,
- 3,
- 91,
- 701,
- 8,
- 91,
- 1,
- 92,
- 1,
- 92,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 5,
- 93,
- 710,
- 8,
- 93,
- 10,
- 93,
- 12,
- 93,
- 713,
- 9,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 5,
- 93,
- 723,
- 8,
- 93,
- 10,
- 93,
- 12,
- 93,
- 726,
- 9,
- 93,
- 1,
- 93,
- 1,
- 93,
- 1,
- 93,
- 3,
- 93,
- 731,
- 8,
- 93,
- 1,
- 94,
- 1,
- 94,
- 3,
- 94,
- 735,
- 8,
- 94,
- 1,
- 95,
- 1,
- 95,
- 1,
- 96,
- 1,
- 96,
- 1,
- 96,
- 1,
- 96,
- 3,
- 96,
- 743,
- 8,
- 96,
- 1,
- 97,
- 3,
- 97,
- 746,
- 8,
- 97,
- 1,
- 97,
- 5,
- 97,
- 749,
- 8,
- 97,
- 10,
- 97,
- 12,
- 97,
- 752,
- 9,
- 97,
- 1,
- 97,
- 1,
- 97,
- 4,
- 97,
- 756,
- 8,
- 97,
- 11,
- 97,
- 12,
- 97,
- 757,
- 1,
- 97,
- 1,
- 97,
- 3,
- 97,
- 762,
- 8,
- 97,
- 1,
- 97,
- 4,
- 97,
- 765,
- 8,
- 97,
- 11,
- 97,
- 12,
- 97,
- 766,
- 3,
- 97,
- 769,
- 8,
- 97,
- 1,
- 98,
- 4,
- 98,
- 772,
- 8,
- 98,
- 11,
- 98,
- 12,
- 98,
- 773,
- 1,
- 99,
- 1,
- 99,
- 1,
- 99,
- 1,
- 99,
- 4,
- 99,
- 780,
- 8,
- 99,
- 11,
- 99,
- 12,
- 99,
- 781,
- 1,
- 100,
- 1,
- 100,
- 4,
- 100,
- 786,
- 8,
- 100,
- 11,
- 100,
- 12,
- 100,
- 787,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 1,
- 101,
- 3,
- 101,
- 799,
- 8,
- 101,
- 1,
- 102,
- 1,
- 102,
- 5,
- 102,
- 803,
- 8,
- 102,
- 10,
- 102,
- 12,
- 102,
- 806,
- 9,
- 102,
- 1,
- 102,
- 1,
- 102,
- 4,
- 102,
- 810,
- 8,
- 102,
- 11,
- 102,
- 12,
- 102,
- 811,
- 1,
- 102,
- 1,
- 102,
- 3,
- 102,
- 816,
- 8,
- 102,
- 1,
- 103,
- 1,
- 103,
- 1,
- 104,
- 1,
- 104,
- 1,
- 105,
- 1,
- 105,
- 1,
- 106,
- 3,
- 106,
- 825,
- 8,
- 106,
- 1,
- 107,
- 1,
- 107,
- 3,
- 107,
- 829,
- 8,
- 107,
- 1,
- 659,
- 0,
- 108,
- 1,
- 1,
- 3,
- 2,
- 5,
- 3,
- 7,
- 4,
- 9,
- 5,
- 11,
- 6,
- 13,
- 7,
- 15,
- 8,
- 17,
- 9,
- 19,
- 10,
- 21,
- 11,
- 23,
- 12,
- 25,
- 13,
- 27,
- 14,
- 29,
- 15,
- 31,
- 16,
- 33,
- 17,
- 35,
- 18,
- 37,
- 19,
- 39,
- 20,
- 41,
- 21,
- 43,
- 22,
- 45,
- 23,
- 47,
- 24,
- 49,
- 25,
- 51,
- 26,
- 53,
- 27,
- 55,
- 28,
- 57,
- 29,
- 59,
- 30,
- 61,
- 31,
- 63,
- 32,
- 65,
- 33,
- 67,
- 34,
- 69,
- 35,
- 71,
- 36,
- 73,
- 37,
- 75,
- 38,
- 77,
- 39,
- 79,
- 40,
- 81,
- 41,
- 83,
- 42,
- 85,
- 43,
- 87,
- 44,
- 89,
- 45,
- 91,
- 46,
- 93,
- 47,
- 95,
- 48,
- 97,
- 49,
- 99,
- 50,
- 101,
- 51,
- 103,
- 52,
- 105,
- 53,
- 107,
- 54,
- 109,
- 55,
- 111,
- 56,
- 113,
- 57,
- 115,
- 58,
- 117,
- 59,
- 119,
- 60,
- 121,
- 61,
- 123,
- 62,
- 125,
- 63,
- 127,
- 64,
- 129,
- 65,
- 131,
- 66,
- 133,
- 67,
- 135,
- 68,
- 137,
- 69,
- 139,
- 70,
- 141,
- 71,
- 143,
- 72,
- 145,
- 73,
- 147,
- 74,
- 149,
- 75,
- 151,
- 76,
- 153,
- 77,
- 155,
- 78,
- 157,
- 79,
- 159,
- 80,
- 161,
- 81,
- 163,
- 82,
- 165,
- 83,
- 167,
- 84,
- 169,
- 0,
- 171,
- 0,
- 173,
- 0,
- 175,
- 85,
- 177,
- 86,
- 179,
- 87,
- 181,
- 0,
- 183,
- 0,
- 185,
- 0,
- 187,
- 0,
- 189,
- 0,
- 191,
- 0,
- 193,
- 0,
- 195,
- 88,
- 197,
- 89,
- 199,
- 90,
- 201,
- 91,
- 203,
- 92,
- 205,
- 93,
- 207,
- 0,
- 209,
- 0,
- 211,
- 0,
- 213,
- 0,
- 215,
- 0,
- 1,
- 0,
- 11,
- 2,
- 0,
- 9,
- 9,
- 32,
- 32,
- 2,
- 0,
- 10,
- 10,
- 12,
- 13,
- 5,
- 0,
- 10,
- 10,
- 13,
- 13,
- 34,
- 34,
- 39,
- 39,
- 92,
- 92,
- 1,
- 0,
- 92,
- 92,
- 2,
- 0,
- 43,
- 43,
- 45,
- 45,
- 2,
- 0,
- 69,
- 69,
- 101,
- 101,
- 1,
- 0,
- 124,
- 124,
- 1,
- 0,
- 48,
- 57,
- 3,
- 0,
- 48,
- 57,
- 65,
- 70,
- 97,
- 102,
- 295,
- 0,
- 65,
- 90,
- 95,
- 95,
- 97,
- 122,
- 170,
- 170,
- 181,
- 181,
- 186,
- 186,
- 192,
- 214,
- 216,
- 246,
- 248,
- 577,
- 592,
- 705,
- 710,
- 721,
- 736,
- 740,
- 750,
- 750,
- 890,
- 890,
- 902,
- 902,
- 904,
- 906,
- 908,
- 908,
- 910,
- 929,
- 931,
- 974,
- 976,
- 1013,
- 1015,
- 1153,
- 1162,
- 1230,
- 1232,
- 1273,
- 1280,
- 1295,
- 1329,
- 1366,
- 1369,
- 1369,
- 1377,
- 1415,
- 1488,
- 1514,
- 1520,
- 1522,
- 1569,
- 1594,
- 1600,
- 1610,
- 1646,
- 1647,
- 1649,
- 1747,
- 1749,
- 1749,
- 1765,
- 1766,
- 1774,
- 1775,
- 1786,
- 1788,
- 1791,
- 1791,
- 1808,
- 1808,
- 1810,
- 1839,
- 1869,
- 1901,
- 1920,
- 1957,
- 1969,
- 1969,
- 2308,
- 2361,
- 2365,
- 2365,
- 2384,
- 2384,
- 2392,
- 2401,
- 2429,
- 2429,
- 2437,
- 2444,
- 2447,
- 2448,
- 2451,
- 2472,
- 2474,
- 2480,
- 2482,
- 2482,
- 2486,
- 2489,
- 2493,
- 2493,
- 2510,
- 2510,
- 2524,
- 2525,
- 2527,
- 2529,
- 2544,
- 2545,
- 2565,
- 2570,
- 2575,
- 2576,
- 2579,
- 2600,
- 2602,
- 2608,
- 2610,
- 2611,
- 2613,
- 2614,
- 2616,
- 2617,
- 2649,
- 2652,
- 2654,
- 2654,
- 2674,
- 2676,
- 2693,
- 2701,
- 2703,
- 2705,
- 2707,
- 2728,
- 2730,
- 2736,
- 2738,
- 2739,
- 2741,
- 2745,
- 2749,
- 2749,
- 2768,
- 2768,
- 2784,
- 2785,
- 2821,
- 2828,
- 2831,
- 2832,
- 2835,
- 2856,
- 2858,
- 2864,
- 2866,
- 2867,
- 2869,
- 2873,
- 2877,
- 2877,
- 2908,
- 2909,
- 2911,
- 2913,
- 2929,
- 2929,
- 2947,
- 2947,
- 2949,
- 2954,
- 2958,
- 2960,
- 2962,
- 2965,
- 2969,
- 2970,
- 2972,
- 2972,
- 2974,
- 2975,
- 2979,
- 2980,
- 2984,
- 2986,
- 2990,
- 3001,
- 3077,
- 3084,
- 3086,
- 3088,
- 3090,
- 3112,
- 3114,
- 3123,
- 3125,
- 3129,
- 3168,
- 3169,
- 3205,
- 3212,
- 3214,
- 3216,
- 3218,
- 3240,
- 3242,
- 3251,
- 3253,
- 3257,
- 3261,
- 3261,
- 3294,
- 3294,
- 3296,
- 3297,
- 3333,
- 3340,
- 3342,
- 3344,
- 3346,
- 3368,
- 3370,
- 3385,
- 3424,
- 3425,
- 3461,
- 3478,
- 3482,
- 3505,
- 3507,
- 3515,
- 3517,
- 3517,
- 3520,
- 3526,
- 3585,
- 3632,
- 3634,
- 3635,
- 3648,
- 3654,
- 3713,
- 3714,
- 3716,
- 3716,
- 3719,
- 3720,
- 3722,
- 3722,
- 3725,
- 3725,
- 3732,
- 3735,
- 3737,
- 3743,
- 3745,
- 3747,
- 3749,
- 3749,
- 3751,
- 3751,
- 3754,
- 3755,
- 3757,
- 3760,
- 3762,
- 3763,
- 3773,
- 3773,
- 3776,
- 3780,
- 3782,
- 3782,
- 3804,
- 3805,
- 3840,
- 3840,
- 3904,
- 3911,
- 3913,
- 3946,
- 3976,
- 3979,
- 4096,
- 4129,
- 4131,
- 4135,
- 4137,
- 4138,
- 4176,
- 4181,
- 4256,
- 4293,
- 4304,
- 4346,
- 4348,
- 4348,
- 4352,
- 4441,
- 4447,
- 4514,
- 4520,
- 4601,
- 4608,
- 4680,
- 4682,
- 4685,
- 4688,
- 4694,
- 4696,
- 4696,
- 4698,
- 4701,
- 4704,
- 4744,
- 4746,
- 4749,
- 4752,
- 4784,
- 4786,
- 4789,
- 4792,
- 4798,
- 4800,
- 4800,
- 4802,
- 4805,
- 4808,
- 4822,
- 4824,
- 4880,
- 4882,
- 4885,
- 4888,
- 4954,
- 4992,
- 5007,
- 5024,
- 5108,
- 5121,
- 5740,
- 5743,
- 5750,
- 5761,
- 5786,
- 5792,
- 5866,
- 5870,
- 5872,
- 5888,
- 5900,
- 5902,
- 5905,
- 5920,
- 5937,
- 5952,
- 5969,
- 5984,
- 5996,
- 5998,
- 6000,
- 6016,
- 6067,
- 6103,
- 6103,
- 6108,
- 6108,
- 6176,
- 6263,
- 6272,
- 6312,
- 6400,
- 6428,
- 6480,
- 6509,
- 6512,
- 6516,
- 6528,
- 6569,
- 6593,
- 6599,
- 6656,
- 6678,
- 7424,
- 7615,
- 7680,
- 7835,
- 7840,
- 7929,
- 7936,
- 7957,
- 7960,
- 7965,
- 7968,
- 8005,
- 8008,
- 8013,
- 8016,
- 8023,
- 8025,
- 8025,
- 8027,
- 8027,
- 8029,
- 8029,
- 8031,
- 8061,
- 8064,
- 8116,
- 8118,
- 8124,
- 8126,
- 8126,
- 8130,
- 8132,
- 8134,
- 8140,
- 8144,
- 8147,
- 8150,
- 8155,
- 8160,
- 8172,
- 8178,
- 8180,
- 8182,
- 8188,
- 8305,
- 8305,
- 8319,
- 8319,
- 8336,
- 8340,
- 8450,
- 8450,
- 8455,
- 8455,
- 8458,
- 8467,
- 8469,
- 8469,
- 8472,
- 8477,
- 8484,
- 8484,
- 8486,
- 8486,
- 8488,
- 8488,
- 8490,
- 8497,
- 8499,
- 8505,
- 8508,
- 8511,
- 8517,
- 8521,
- 8544,
- 8579,
- 11264,
- 11310,
- 11312,
- 11358,
- 11392,
- 11492,
- 11520,
- 11557,
- 11568,
- 11621,
- 11631,
- 11631,
- 11648,
- 11670,
- 11680,
- 11686,
- 11688,
- 11694,
- 11696,
- 11702,
- 11704,
- 11710,
- 11712,
- 11718,
- 11720,
- 11726,
- 11728,
- 11734,
- 11736,
- 11742,
- 12293,
- 12295,
- 12321,
- 12329,
- 12337,
- 12341,
- 12344,
- 12348,
- 12353,
- 12438,
- 12443,
- 12447,
- 12449,
- 12538,
- 12540,
- 12543,
- 12549,
- 12588,
- 12593,
- 12686,
- 12704,
- 12727,
- 12784,
- 12799,
- 13312,
- 19893,
- 19968,
- 40891,
- 40960,
- 42124,
- 43008,
- 43009,
- 43011,
- 43013,
- 43015,
- 43018,
- 43020,
- 43042,
- 44032,
- 55203,
- 63744,
- 64045,
- 64048,
- 64106,
- 64112,
- 64217,
- 64256,
- 64262,
- 64275,
- 64279,
- 64285,
- 64285,
- 64287,
- 64296,
- 64298,
- 64310,
- 64312,
- 64316,
- 64318,
- 64318,
- 64320,
- 64321,
- 64323,
- 64324,
- 64326,
- 64433,
- 64467,
- 64829,
- 64848,
- 64911,
- 64914,
- 64967,
- 65008,
- 65019,
- 65136,
- 65140,
- 65142,
- 65276,
- 65313,
- 65338,
- 65345,
- 65370,
- 65382,
- 65470,
- 65474,
- 65479,
- 65482,
- 65487,
- 65490,
- 65495,
- 65498,
- 65500,
- 148,
- 0,
- 48,
- 57,
- 768,
- 879,
- 1155,
- 1158,
- 1425,
- 1465,
- 1467,
- 1469,
- 1471,
- 1471,
- 1473,
- 1474,
- 1476,
- 1477,
- 1479,
- 1479,
- 1552,
- 1557,
- 1611,
- 1630,
- 1632,
- 1641,
- 1648,
- 1648,
- 1750,
- 1756,
- 1759,
- 1764,
- 1767,
- 1768,
- 1770,
- 1773,
- 1776,
- 1785,
- 1809,
- 1809,
- 1840,
- 1866,
- 1958,
- 1968,
- 2305,
- 2307,
- 2364,
- 2364,
- 2366,
- 2381,
- 2385,
- 2388,
- 2402,
- 2403,
- 2406,
- 2415,
- 2433,
- 2435,
- 2492,
- 2492,
- 2494,
- 2500,
- 2503,
- 2504,
- 2507,
- 2509,
- 2519,
- 2519,
- 2530,
- 2531,
- 2534,
- 2543,
- 2561,
- 2563,
- 2620,
- 2620,
- 2622,
- 2626,
- 2631,
- 2632,
- 2635,
- 2637,
- 2662,
- 2673,
- 2689,
- 2691,
- 2748,
- 2748,
- 2750,
- 2757,
- 2759,
- 2761,
- 2763,
- 2765,
- 2786,
- 2787,
- 2790,
- 2799,
- 2817,
- 2819,
- 2876,
- 2876,
- 2878,
- 2883,
- 2887,
- 2888,
- 2891,
- 2893,
- 2902,
- 2903,
- 2918,
- 2927,
- 2946,
- 2946,
- 3006,
- 3010,
- 3014,
- 3016,
- 3018,
- 3021,
- 3031,
- 3031,
- 3046,
- 3055,
- 3073,
- 3075,
- 3134,
- 3140,
- 3142,
- 3144,
- 3146,
- 3149,
- 3157,
- 3158,
- 3174,
- 3183,
- 3202,
- 3203,
- 3260,
- 3260,
- 3262,
- 3268,
- 3270,
- 3272,
- 3274,
- 3277,
- 3285,
- 3286,
- 3302,
- 3311,
- 3330,
- 3331,
- 3390,
- 3395,
- 3398,
- 3400,
- 3402,
- 3405,
- 3415,
- 3415,
- 3430,
- 3439,
- 3458,
- 3459,
- 3530,
- 3530,
- 3535,
- 3540,
- 3542,
- 3542,
- 3544,
- 3551,
- 3570,
- 3571,
- 3633,
- 3633,
- 3636,
- 3642,
- 3655,
- 3662,
- 3664,
- 3673,
- 3761,
- 3761,
- 3764,
- 3769,
- 3771,
- 3772,
- 3784,
- 3789,
- 3792,
- 3801,
- 3864,
- 3865,
- 3872,
- 3881,
- 3893,
- 3893,
- 3895,
- 3895,
- 3897,
- 3897,
- 3902,
- 3903,
- 3953,
- 3972,
- 3974,
- 3975,
- 3984,
- 3991,
- 3993,
- 4028,
- 4038,
- 4038,
- 4140,
- 4146,
- 4150,
- 4153,
- 4160,
- 4169,
- 4182,
- 4185,
- 4959,
- 4959,
- 4969,
- 4977,
- 5906,
- 5908,
- 5938,
- 5940,
- 5970,
- 5971,
- 6002,
- 6003,
- 6070,
- 6099,
- 6109,
- 6109,
- 6112,
- 6121,
- 6155,
- 6157,
- 6160,
- 6169,
- 6313,
- 6313,
- 6432,
- 6443,
- 6448,
- 6459,
- 6470,
- 6479,
- 6576,
- 6592,
- 6600,
- 6601,
- 6608,
- 6617,
- 6679,
- 6683,
- 7616,
- 7619,
- 8255,
- 8256,
- 8276,
- 8276,
- 8400,
- 8412,
- 8417,
- 8417,
- 8421,
- 8427,
- 12330,
- 12335,
- 12441,
- 12442,
- 43010,
- 43010,
- 43014,
- 43014,
- 43019,
- 43019,
- 43043,
- 43047,
- 64286,
- 64286,
- 65024,
- 65039,
- 65056,
- 65059,
- 65075,
- 65076,
- 65101,
- 65103,
- 65296,
- 65305,
- 65343,
- 65343,
- 849,
- 0,
- 1,
- 1,
- 0,
- 0,
- 0,
- 0,
- 3,
- 1,
- 0,
- 0,
- 0,
- 0,
- 5,
- 1,
- 0,
- 0,
- 0,
- 0,
- 7,
- 1,
- 0,
- 0,
- 0,
- 0,
- 9,
- 1,
- 0,
- 0,
- 0,
- 0,
- 11,
- 1,
- 0,
- 0,
- 0,
- 0,
- 13,
- 1,
- 0,
- 0,
- 0,
- 0,
- 15,
- 1,
- 0,
- 0,
- 0,
- 0,
- 17,
- 1,
- 0,
- 0,
- 0,
- 0,
- 19,
- 1,
- 0,
- 0,
- 0,
- 0,
- 21,
- 1,
- 0,
- 0,
- 0,
- 0,
- 23,
- 1,
- 0,
- 0,
- 0,
- 0,
- 25,
- 1,
- 0,
- 0,
- 0,
- 0,
- 27,
- 1,
- 0,
- 0,
- 0,
- 0,
- 29,
- 1,
- 0,
- 0,
- 0,
- 0,
- 31,
- 1,
- 0,
- 0,
- 0,
- 0,
- 33,
- 1,
- 0,
- 0,
- 0,
- 0,
- 35,
- 1,
- 0,
- 0,
- 0,
- 0,
- 37,
- 1,
- 0,
- 0,
- 0,
- 0,
- 39,
- 1,
- 0,
- 0,
- 0,
- 0,
- 41,
- 1,
- 0,
- 0,
- 0,
- 0,
- 43,
- 1,
- 0,
- 0,
- 0,
- 0,
- 45,
- 1,
- 0,
- 0,
- 0,
- 0,
- 47,
- 1,
- 0,
- 0,
- 0,
- 0,
- 49,
- 1,
- 0,
- 0,
- 0,
- 0,
- 51,
- 1,
- 0,
- 0,
- 0,
- 0,
- 53,
- 1,
- 0,
- 0,
- 0,
- 0,
- 55,
- 1,
- 0,
- 0,
- 0,
- 0,
- 57,
- 1,
- 0,
- 0,
- 0,
- 0,
- 59,
- 1,
- 0,
- 0,
- 0,
- 0,
- 61,
- 1,
- 0,
- 0,
- 0,
- 0,
- 63,
- 1,
- 0,
- 0,
- 0,
- 0,
- 65,
- 1,
- 0,
- 0,
- 0,
- 0,
- 67,
- 1,
- 0,
- 0,
- 0,
- 0,
- 69,
- 1,
- 0,
- 0,
- 0,
- 0,
- 71,
- 1,
- 0,
- 0,
- 0,
- 0,
- 73,
- 1,
- 0,
- 0,
- 0,
- 0,
- 75,
- 1,
- 0,
- 0,
- 0,
- 0,
- 77,
- 1,
- 0,
- 0,
- 0,
- 0,
- 79,
- 1,
- 0,
- 0,
- 0,
- 0,
- 81,
- 1,
- 0,
- 0,
- 0,
- 0,
- 83,
- 1,
- 0,
- 0,
- 0,
- 0,
- 85,
- 1,
- 0,
- 0,
- 0,
- 0,
- 87,
- 1,
- 0,
- 0,
- 0,
- 0,
- 89,
- 1,
- 0,
- 0,
- 0,
- 0,
- 91,
- 1,
- 0,
- 0,
- 0,
- 0,
- 93,
- 1,
- 0,
- 0,
- 0,
- 0,
- 95,
- 1,
- 0,
- 0,
- 0,
- 0,
- 97,
- 1,
- 0,
- 0,
- 0,
- 0,
- 99,
- 1,
- 0,
- 0,
- 0,
- 0,
- 101,
- 1,
- 0,
- 0,
- 0,
- 0,
- 103,
- 1,
- 0,
- 0,
- 0,
- 0,
- 105,
- 1,
- 0,
- 0,
- 0,
- 0,
- 107,
- 1,
- 0,
- 0,
- 0,
- 0,
- 109,
- 1,
- 0,
- 0,
- 0,
- 0,
- 111,
- 1,
- 0,
- 0,
- 0,
- 0,
- 113,
- 1,
- 0,
- 0,
- 0,
- 0,
- 115,
- 1,
- 0,
- 0,
- 0,
- 0,
- 117,
- 1,
- 0,
- 0,
- 0,
- 0,
- 119,
- 1,
- 0,
- 0,
- 0,
- 0,
- 121,
- 1,
- 0,
- 0,
- 0,
- 0,
- 123,
- 1,
- 0,
- 0,
- 0,
- 0,
- 125,
- 1,
- 0,
- 0,
- 0,
- 0,
- 127,
- 1,
- 0,
- 0,
- 0,
- 0,
- 129,
- 1,
- 0,
- 0,
- 0,
- 0,
- 131,
- 1,
- 0,
- 0,
- 0,
- 0,
- 133,
- 1,
- 0,
- 0,
- 0,
- 0,
- 135,
- 1,
- 0,
- 0,
- 0,
- 0,
- 137,
- 1,
- 0,
- 0,
- 0,
- 0,
- 139,
- 1,
- 0,
- 0,
- 0,
- 0,
- 141,
- 1,
- 0,
- 0,
- 0,
- 0,
- 143,
- 1,
- 0,
- 0,
- 0,
- 0,
- 145,
- 1,
- 0,
- 0,
- 0,
- 0,
- 147,
- 1,
- 0,
- 0,
- 0,
- 0,
- 149,
- 1,
- 0,
- 0,
- 0,
- 0,
- 151,
- 1,
- 0,
- 0,
- 0,
- 0,
- 153,
- 1,
- 0,
- 0,
- 0,
- 0,
- 155,
- 1,
- 0,
- 0,
- 0,
- 0,
- 157,
- 1,
- 0,
- 0,
- 0,
- 0,
- 159,
- 1,
- 0,
- 0,
- 0,
- 0,
- 161,
- 1,
- 0,
- 0,
- 0,
- 0,
- 163,
- 1,
- 0,
- 0,
- 0,
- 0,
- 165,
- 1,
- 0,
- 0,
- 0,
- 0,
- 167,
- 1,
- 0,
- 0,
- 0,
- 0,
- 175,
- 1,
- 0,
- 0,
- 0,
- 0,
- 177,
- 1,
- 0,
- 0,
- 0,
- 0,
- 179,
- 1,
- 0,
- 0,
- 0,
- 0,
- 195,
- 1,
- 0,
- 0,
- 0,
- 0,
- 197,
- 1,
- 0,
- 0,
- 0,
- 0,
- 199,
- 1,
- 0,
- 0,
- 0,
- 0,
- 201,
- 1,
- 0,
- 0,
- 0,
- 0,
- 203,
- 1,
- 0,
- 0,
- 0,
- 0,
- 205,
- 1,
- 0,
- 0,
- 0,
- 1,
- 217,
- 1,
- 0,
- 0,
- 0,
- 3,
- 224,
- 1,
- 0,
- 0,
- 0,
- 5,
- 226,
- 1,
- 0,
- 0,
- 0,
- 7,
- 231,
- 1,
- 0,
- 0,
- 0,
- 9,
- 234,
- 1,
- 0,
- 0,
- 0,
- 11,
- 237,
- 1,
- 0,
- 0,
- 0,
- 13,
- 242,
- 1,
- 0,
- 0,
- 0,
- 15,
- 245,
- 1,
- 0,
- 0,
- 0,
- 17,
- 247,
- 1,
- 0,
- 0,
- 0,
- 19,
- 249,
- 1,
- 0,
- 0,
- 0,
- 21,
- 254,
- 1,
- 0,
- 0,
- 0,
- 23,
- 256,
- 1,
- 0,
- 0,
- 0,
- 25,
- 258,
- 1,
- 0,
- 0,
- 0,
- 27,
- 261,
- 1,
- 0,
- 0,
- 0,
- 29,
- 268,
- 1,
- 0,
- 0,
- 0,
- 31,
- 277,
- 1,
- 0,
- 0,
- 0,
- 33,
- 283,
- 1,
- 0,
- 0,
- 0,
- 35,
- 292,
- 1,
- 0,
- 0,
- 0,
- 37,
- 299,
- 1,
- 0,
- 0,
- 0,
- 39,
- 308,
- 1,
- 0,
- 0,
- 0,
- 41,
- 315,
- 1,
- 0,
- 0,
- 0,
- 43,
- 322,
- 1,
- 0,
- 0,
- 0,
- 45,
- 327,
- 1,
- 0,
- 0,
- 0,
- 47,
- 331,
- 1,
- 0,
- 0,
- 0,
- 49,
- 336,
- 1,
- 0,
- 0,
- 0,
- 51,
- 342,
- 1,
- 0,
- 0,
- 0,
- 53,
- 347,
- 1,
- 0,
- 0,
- 0,
- 55,
- 354,
- 1,
- 0,
- 0,
- 0,
- 57,
- 360,
- 1,
- 0,
- 0,
- 0,
- 59,
- 363,
- 1,
- 0,
- 0,
- 0,
- 61,
- 365,
- 1,
- 0,
- 0,
- 0,
- 63,
- 368,
- 1,
- 0,
- 0,
- 0,
- 65,
- 373,
- 1,
- 0,
- 0,
- 0,
- 67,
- 378,
- 1,
- 0,
- 0,
- 0,
- 69,
- 386,
- 1,
- 0,
- 0,
- 0,
- 71,
- 392,
- 1,
- 0,
- 0,
- 0,
- 73,
- 396,
- 1,
- 0,
- 0,
- 0,
- 75,
- 403,
- 1,
- 0,
- 0,
- 0,
- 77,
- 408,
- 1,
- 0,
- 0,
- 0,
- 79,
- 413,
- 1,
- 0,
- 0,
- 0,
- 81,
- 421,
- 1,
- 0,
- 0,
- 0,
- 83,
- 426,
- 1,
- 0,
- 0,
- 0,
- 85,
- 441,
- 1,
- 0,
- 0,
- 0,
- 87,
- 444,
- 1,
- 0,
- 0,
- 0,
- 89,
- 447,
- 1,
- 0,
- 0,
- 0,
- 91,
- 454,
- 1,
- 0,
- 0,
- 0,
- 93,
- 461,
- 1,
- 0,
- 0,
- 0,
- 95,
- 470,
- 1,
- 0,
- 0,
- 0,
- 97,
- 475,
- 1,
- 0,
- 0,
- 0,
- 99,
- 480,
- 1,
- 0,
- 0,
- 0,
- 101,
- 485,
- 1,
- 0,
- 0,
- 0,
- 103,
- 491,
- 1,
- 0,
- 0,
- 0,
- 105,
- 495,
- 1,
- 0,
- 0,
- 0,
- 107,
- 498,
- 1,
- 0,
- 0,
- 0,
- 109,
- 509,
- 1,
- 0,
- 0,
- 0,
- 111,
- 519,
- 1,
- 0,
- 0,
- 0,
- 113,
- 528,
- 1,
- 0,
- 0,
- 0,
- 115,
- 533,
- 1,
- 0,
- 0,
- 0,
- 117,
- 539,
- 1,
- 0,
- 0,
- 0,
- 119,
- 546,
- 1,
- 0,
- 0,
- 0,
- 121,
- 552,
- 1,
- 0,
- 0,
- 0,
- 123,
- 554,
- 1,
- 0,
- 0,
- 0,
- 125,
- 557,
- 1,
- 0,
- 0,
- 0,
- 127,
- 560,
- 1,
- 0,
- 0,
- 0,
- 129,
- 564,
- 1,
- 0,
- 0,
- 0,
- 131,
- 568,
- 1,
- 0,
- 0,
- 0,
- 133,
- 571,
- 1,
- 0,
- 0,
- 0,
- 135,
- 573,
- 1,
- 0,
- 0,
- 0,
- 137,
- 576,
- 1,
- 0,
- 0,
- 0,
- 139,
- 578,
- 1,
- 0,
- 0,
- 0,
- 141,
- 581,
- 1,
- 0,
- 0,
- 0,
- 143,
- 584,
- 1,
- 0,
- 0,
- 0,
- 145,
- 586,
- 1,
- 0,
- 0,
- 0,
- 147,
- 588,
- 1,
- 0,
- 0,
- 0,
- 149,
- 590,
- 1,
- 0,
- 0,
- 0,
- 151,
- 592,
- 1,
- 0,
- 0,
- 0,
- 153,
- 594,
- 1,
- 0,
- 0,
- 0,
- 155,
- 597,
- 1,
- 0,
- 0,
- 0,
- 157,
- 612,
- 1,
- 0,
- 0,
- 0,
- 159,
- 616,
- 1,
- 0,
- 0,
- 0,
- 161,
- 619,
- 1,
- 0,
- 0,
- 0,
- 163,
- 622,
- 1,
- 0,
- 0,
- 0,
- 165,
- 625,
- 1,
- 0,
- 0,
- 0,
- 167,
- 630,
- 1,
- 0,
- 0,
- 0,
- 169,
- 635,
- 1,
- 0,
- 0,
- 0,
- 171,
- 639,
- 1,
- 0,
- 0,
- 0,
- 173,
- 649,
- 1,
- 0,
- 0,
- 0,
- 175,
- 653,
- 1,
- 0,
- 0,
- 0,
- 177,
- 667,
- 1,
- 0,
- 0,
- 0,
- 179,
- 678,
- 1,
- 0,
- 0,
- 0,
- 181,
- 696,
- 1,
- 0,
- 0,
- 0,
- 183,
- 700,
- 1,
- 0,
- 0,
- 0,
- 185,
- 702,
- 1,
- 0,
- 0,
- 0,
- 187,
- 730,
- 1,
- 0,
- 0,
- 0,
- 189,
- 734,
- 1,
- 0,
- 0,
- 0,
- 191,
- 736,
- 1,
- 0,
- 0,
- 0,
- 193,
- 742,
- 1,
- 0,
- 0,
- 0,
- 195,
- 745,
- 1,
- 0,
- 0,
- 0,
- 197,
- 771,
- 1,
- 0,
- 0,
- 0,
- 199,
- 775,
- 1,
- 0,
- 0,
- 0,
- 201,
- 783,
- 1,
- 0,
- 0,
- 0,
- 203,
- 798,
- 1,
- 0,
- 0,
- 0,
- 205,
- 815,
- 1,
- 0,
- 0,
- 0,
- 207,
- 817,
- 1,
- 0,
- 0,
- 0,
- 209,
- 819,
- 1,
- 0,
- 0,
- 0,
- 211,
- 821,
- 1,
- 0,
- 0,
- 0,
- 213,
- 824,
- 1,
- 0,
- 0,
- 0,
- 215,
- 828,
- 1,
- 0,
- 0,
- 0,
- 217,
- 218,
- 5,
- 105,
- 0,
- 0,
- 218,
- 219,
- 5,
- 109,
- 0,
- 0,
- 219,
- 220,
- 5,
- 112,
- 0,
- 0,
- 220,
- 221,
- 5,
- 111,
- 0,
- 0,
- 221,
- 222,
- 5,
- 114,
- 0,
- 0,
- 222,
- 223,
- 5,
- 116,
- 0,
- 0,
- 223,
- 2,
- 1,
- 0,
- 0,
- 0,
- 224,
- 225,
- 5,
- 46,
- 0,
- 0,
- 225,
- 4,
- 1,
- 0,
- 0,
- 0,
- 226,
- 227,
- 5,
- 116,
- 0,
- 0,
- 227,
- 228,
- 5,
- 121,
- 0,
- 0,
- 228,
- 229,
- 5,
- 112,
- 0,
- 0,
- 229,
- 230,
- 5,
- 101,
- 0,
- 0,
- 230,
- 6,
- 1,
- 0,
- 0,
- 0,
- 231,
- 232,
- 5,
- 105,
- 0,
- 0,
- 232,
- 233,
- 5,
- 115,
- 0,
- 0,
- 233,
- 8,
- 1,
- 0,
- 0,
- 0,
- 234,
- 235,
- 5,
- 83,
- 0,
- 0,
- 235,
- 236,
- 5,
- 73,
- 0,
- 0,
- 236,
- 10,
- 1,
- 0,
- 0,
- 0,
- 237,
- 238,
- 5,
- 117,
- 0,
- 0,
- 238,
- 239,
- 5,
- 110,
- 0,
- 0,
- 239,
- 240,
- 5,
- 105,
- 0,
- 0,
- 240,
- 241,
- 5,
- 116,
- 0,
- 0,
- 241,
- 12,
- 1,
- 0,
- 0,
- 0,
- 242,
- 243,
- 5,
- 111,
- 0,
- 0,
- 243,
- 244,
- 5,
- 102,
- 0,
- 0,
- 244,
- 14,
- 1,
- 0,
- 0,
- 0,
- 245,
- 246,
- 5,
- 44,
- 0,
- 0,
- 246,
- 16,
- 1,
- 0,
- 0,
- 0,
- 247,
- 248,
- 5,
- 58,
- 0,
- 0,
- 248,
- 18,
- 1,
- 0,
- 0,
- 0,
- 249,
- 250,
- 5,
- 101,
- 0,
- 0,
- 250,
- 251,
- 5,
- 110,
- 0,
- 0,
- 251,
- 252,
- 5,
- 117,
- 0,
- 0,
- 252,
- 253,
- 5,
- 109,
- 0,
- 0,
- 253,
- 20,
- 1,
- 0,
- 0,
- 0,
- 254,
- 255,
- 5,
- 61,
- 0,
- 0,
- 255,
- 22,
- 1,
- 0,
- 0,
- 0,
- 256,
- 257,
- 5,
- 33,
- 0,
- 0,
- 257,
- 24,
- 1,
- 0,
- 0,
- 0,
- 258,
- 259,
- 5,
- 61,
- 0,
- 0,
- 259,
- 260,
- 5,
- 61,
- 0,
- 0,
- 260,
- 26,
- 1,
- 0,
- 0,
- 0,
- 261,
- 262,
- 5,
- 115,
- 0,
- 0,
- 262,
- 263,
- 5,
- 116,
- 0,
- 0,
- 263,
- 264,
- 5,
- 114,
- 0,
- 0,
- 264,
- 265,
- 5,
- 117,
- 0,
- 0,
- 265,
- 266,
- 5,
- 99,
- 0,
- 0,
- 266,
- 267,
- 5,
- 116,
- 0,
- 0,
- 267,
- 28,
- 1,
- 0,
- 0,
- 0,
- 268,
- 269,
- 5,
- 105,
- 0,
- 0,
- 269,
- 270,
- 5,
- 110,
- 0,
- 0,
- 270,
- 271,
- 5,
- 104,
- 0,
- 0,
- 271,
- 272,
- 5,
- 101,
- 0,
- 0,
- 272,
- 273,
- 5,
- 114,
- 0,
- 0,
- 273,
- 274,
- 5,
- 105,
- 0,
- 0,
- 274,
- 275,
- 5,
- 116,
- 0,
- 0,
- 275,
- 276,
- 5,
- 115,
- 0,
- 0,
- 276,
- 30,
- 1,
- 0,
- 0,
- 0,
- 277,
- 278,
- 5,
- 97,
- 0,
- 0,
- 278,
- 279,
- 5,
- 99,
- 0,
- 0,
- 279,
- 280,
- 5,
- 116,
- 0,
- 0,
- 280,
- 281,
- 5,
- 111,
- 0,
- 0,
- 281,
- 282,
- 5,
- 114,
- 0,
- 0,
- 282,
- 32,
- 1,
- 0,
- 0,
- 0,
- 283,
- 284,
- 5,
- 115,
- 0,
- 0,
- 284,
- 285,
- 5,
- 99,
- 0,
- 0,
- 285,
- 286,
- 5,
- 101,
- 0,
- 0,
- 286,
- 287,
- 5,
- 110,
- 0,
- 0,
- 287,
- 288,
- 5,
- 97,
- 0,
- 0,
- 288,
- 289,
- 5,
- 114,
- 0,
- 0,
- 289,
- 290,
- 5,
- 105,
- 0,
- 0,
- 290,
- 291,
- 5,
- 111,
- 0,
- 0,
- 291,
- 34,
- 1,
- 0,
- 0,
- 0,
- 292,
- 293,
- 5,
- 97,
- 0,
- 0,
- 293,
- 294,
- 5,
- 99,
- 0,
- 0,
- 294,
- 295,
- 5,
- 116,
- 0,
- 0,
- 295,
- 296,
- 5,
- 105,
- 0,
- 0,
- 296,
- 297,
- 5,
- 111,
- 0,
- 0,
- 297,
- 298,
- 5,
- 110,
- 0,
- 0,
- 298,
- 36,
- 1,
- 0,
- 0,
- 0,
- 299,
- 300,
- 5,
- 109,
- 0,
- 0,
- 300,
- 301,
- 5,
- 111,
- 0,
- 0,
- 301,
- 302,
- 5,
- 100,
- 0,
- 0,
- 302,
- 303,
- 5,
- 105,
- 0,
- 0,
- 303,
- 304,
- 5,
- 102,
- 0,
- 0,
- 304,
- 305,
- 5,
- 105,
- 0,
- 0,
- 305,
- 306,
- 5,
- 101,
- 0,
- 0,
- 306,
- 307,
- 5,
- 114,
- 0,
- 0,
- 307,
- 38,
- 1,
- 0,
- 0,
- 0,
- 308,
- 309,
- 5,
- 101,
- 0,
- 0,
- 309,
- 310,
- 5,
- 120,
- 0,
- 0,
- 310,
- 311,
- 5,
- 116,
- 0,
- 0,
- 311,
- 312,
- 5,
- 101,
- 0,
- 0,
- 312,
- 313,
- 5,
- 110,
- 0,
- 0,
- 313,
- 314,
- 5,
- 100,
- 0,
- 0,
- 314,
- 40,
- 1,
- 0,
- 0,
- 0,
- 315,
- 316,
- 5,
- 103,
- 0,
- 0,
- 316,
- 317,
- 5,
- 108,
- 0,
- 0,
- 317,
- 318,
- 5,
- 111,
- 0,
- 0,
- 318,
- 319,
- 5,
- 98,
- 0,
- 0,
- 319,
- 320,
- 5,
- 97,
- 0,
- 0,
- 320,
- 321,
- 5,
- 108,
- 0,
- 0,
- 321,
- 42,
- 1,
- 0,
- 0,
- 0,
- 322,
- 323,
- 5,
- 108,
- 0,
- 0,
- 323,
- 324,
- 5,
- 105,
- 0,
- 0,
- 324,
- 325,
- 5,
- 115,
- 0,
- 0,
- 325,
- 326,
- 5,
- 116,
- 0,
- 0,
- 326,
- 44,
- 1,
- 0,
- 0,
- 0,
- 327,
- 328,
- 5,
- 105,
- 0,
- 0,
- 328,
- 329,
- 5,
- 110,
- 0,
- 0,
- 329,
- 330,
- 5,
- 116,
- 0,
- 0,
- 330,
- 46,
- 1,
- 0,
- 0,
- 0,
- 331,
- 332,
- 5,
- 117,
- 0,
- 0,
- 332,
- 333,
- 5,
- 105,
- 0,
- 0,
- 333,
- 334,
- 5,
- 110,
- 0,
- 0,
- 334,
- 335,
- 5,
- 116,
- 0,
- 0,
- 335,
- 48,
- 1,
- 0,
- 0,
- 0,
- 336,
- 337,
- 5,
- 102,
- 0,
- 0,
- 337,
- 338,
- 5,
- 108,
- 0,
- 0,
- 338,
- 339,
- 5,
- 111,
- 0,
- 0,
- 339,
- 340,
- 5,
- 97,
- 0,
- 0,
- 340,
- 341,
- 5,
- 116,
- 0,
- 0,
- 341,
- 50,
- 1,
- 0,
- 0,
- 0,
- 342,
- 343,
- 5,
- 98,
- 0,
- 0,
- 343,
- 344,
- 5,
- 111,
- 0,
- 0,
- 344,
- 345,
- 5,
- 111,
- 0,
- 0,
- 345,
- 346,
- 5,
- 108,
- 0,
- 0,
- 346,
- 52,
- 1,
- 0,
- 0,
- 0,
- 347,
- 348,
- 5,
- 115,
- 0,
- 0,
- 348,
- 349,
- 5,
- 116,
- 0,
- 0,
- 349,
- 350,
- 5,
- 114,
- 0,
- 0,
- 350,
- 351,
- 5,
- 105,
- 0,
- 0,
- 351,
- 352,
- 5,
- 110,
- 0,
- 0,
- 352,
- 353,
- 5,
- 103,
- 0,
- 0,
- 353,
- 54,
- 1,
- 0,
- 0,
- 0,
- 354,
- 355,
- 5,
- 101,
- 0,
- 0,
- 355,
- 356,
- 5,
- 118,
- 0,
- 0,
- 356,
- 357,
- 5,
- 101,
- 0,
- 0,
- 357,
- 358,
- 5,
- 110,
- 0,
- 0,
- 358,
- 359,
- 5,
- 116,
- 0,
- 0,
- 359,
- 56,
- 1,
- 0,
- 0,
- 0,
- 360,
- 361,
- 5,
- 105,
- 0,
- 0,
- 361,
- 362,
- 5,
- 102,
- 0,
- 0,
- 362,
- 58,
- 1,
- 0,
- 0,
- 0,
- 363,
- 364,
- 5,
- 64,
- 0,
- 0,
- 364,
- 60,
- 1,
- 0,
- 0,
- 0,
- 365,
- 366,
- 5,
- 97,
- 0,
- 0,
- 366,
- 367,
- 5,
- 115,
- 0,
- 0,
- 367,
- 62,
- 1,
- 0,
- 0,
- 0,
- 368,
- 369,
- 5,
- 114,
- 0,
- 0,
- 369,
- 370,
- 5,
- 105,
- 0,
- 0,
- 370,
- 371,
- 5,
- 115,
- 0,
- 0,
- 371,
- 372,
- 5,
- 101,
- 0,
- 0,
- 372,
- 64,
- 1,
- 0,
- 0,
- 0,
- 373,
- 374,
- 5,
- 102,
- 0,
- 0,
- 374,
- 375,
- 5,
- 97,
- 0,
- 0,
- 375,
- 376,
- 5,
- 108,
- 0,
- 0,
- 376,
- 377,
- 5,
- 108,
- 0,
- 0,
- 377,
- 66,
- 1,
- 0,
- 0,
- 0,
- 378,
- 379,
- 5,
- 101,
- 0,
- 0,
- 379,
- 380,
- 5,
- 108,
- 0,
- 0,
- 380,
- 381,
- 5,
- 97,
- 0,
- 0,
- 381,
- 382,
- 5,
- 112,
- 0,
- 0,
- 382,
- 383,
- 5,
- 115,
- 0,
- 0,
- 383,
- 384,
- 5,
- 101,
- 0,
- 0,
- 384,
- 385,
- 5,
- 100,
- 0,
- 0,
- 385,
- 68,
- 1,
- 0,
- 0,
- 0,
- 386,
- 387,
- 5,
- 101,
- 0,
- 0,
- 387,
- 388,
- 5,
- 118,
- 0,
- 0,
- 388,
- 389,
- 5,
- 101,
- 0,
- 0,
- 389,
- 390,
- 5,
- 114,
- 0,
- 0,
- 390,
- 391,
- 5,
- 121,
- 0,
- 0,
- 391,
- 70,
- 1,
- 0,
- 0,
- 0,
- 392,
- 393,
- 5,
- 118,
- 0,
- 0,
- 393,
- 394,
- 5,
- 97,
- 0,
- 0,
- 394,
- 395,
- 5,
- 114,
- 0,
- 0,
- 395,
- 72,
- 1,
- 0,
- 0,
- 0,
- 396,
- 397,
- 5,
- 115,
- 0,
- 0,
- 397,
- 398,
- 5,
- 97,
- 0,
- 0,
- 398,
- 399,
- 5,
- 109,
- 0,
- 0,
- 399,
- 400,
- 5,
- 112,
- 0,
- 0,
- 400,
- 401,
- 5,
- 108,
- 0,
- 0,
- 401,
- 402,
- 5,
- 101,
- 0,
- 0,
- 402,
- 74,
- 1,
- 0,
- 0,
- 0,
- 403,
- 404,
- 5,
- 119,
- 0,
- 0,
- 404,
- 405,
- 5,
- 105,
- 0,
- 0,
- 405,
- 406,
- 5,
- 116,
- 0,
- 0,
- 406,
- 407,
- 5,
- 104,
- 0,
- 0,
- 407,
- 76,
- 1,
- 0,
- 0,
- 0,
- 408,
- 409,
- 5,
- 107,
- 0,
- 0,
- 409,
- 410,
- 5,
- 101,
- 0,
- 0,
- 410,
- 411,
- 5,
- 101,
- 0,
- 0,
- 411,
- 412,
- 5,
- 112,
- 0,
- 0,
- 412,
- 78,
- 1,
- 0,
- 0,
- 0,
- 413,
- 414,
- 5,
- 100,
- 0,
- 0,
- 414,
- 415,
- 5,
- 101,
- 0,
- 0,
- 415,
- 416,
- 5,
- 102,
- 0,
- 0,
- 416,
- 417,
- 5,
- 97,
- 0,
- 0,
- 417,
- 418,
- 5,
- 117,
- 0,
- 0,
- 418,
- 419,
- 5,
- 108,
- 0,
- 0,
- 419,
- 420,
- 5,
- 116,
- 0,
- 0,
- 420,
- 80,
- 1,
- 0,
- 0,
- 0,
- 421,
- 422,
- 5,
- 104,
- 0,
- 0,
- 422,
- 423,
- 5,
- 97,
- 0,
- 0,
- 423,
- 424,
- 5,
- 114,
- 0,
- 0,
- 424,
- 425,
- 5,
- 100,
- 0,
- 0,
- 425,
- 82,
- 1,
- 0,
- 0,
- 0,
- 426,
- 427,
- 5,
- 114,
- 0,
- 0,
- 427,
- 428,
- 5,
- 101,
- 0,
- 0,
- 428,
- 429,
- 5,
- 109,
- 0,
- 0,
- 429,
- 430,
- 5,
- 111,
- 0,
- 0,
- 430,
- 431,
- 5,
- 118,
- 0,
- 0,
- 431,
- 432,
- 5,
- 101,
- 0,
- 0,
- 432,
- 433,
- 5,
- 95,
- 0,
- 0,
- 433,
- 434,
- 5,
- 100,
- 0,
- 0,
- 434,
- 435,
- 5,
- 101,
- 0,
- 0,
- 435,
- 436,
- 5,
- 102,
- 0,
- 0,
- 436,
- 437,
- 5,
- 97,
- 0,
- 0,
- 437,
- 438,
- 5,
- 117,
- 0,
- 0,
- 438,
- 439,
- 5,
- 108,
- 0,
- 0,
- 439,
- 440,
- 5,
- 116,
- 0,
- 0,
- 440,
- 84,
- 1,
- 0,
- 0,
- 0,
- 441,
- 442,
- 5,
- 111,
- 0,
- 0,
- 442,
- 443,
- 5,
- 110,
- 0,
- 0,
- 443,
- 86,
- 1,
- 0,
- 0,
- 0,
- 444,
- 445,
- 5,
- 100,
- 0,
- 0,
- 445,
- 446,
- 5,
- 111,
- 0,
- 0,
- 446,
- 88,
- 1,
- 0,
- 0,
- 0,
- 447,
- 448,
- 5,
- 115,
- 0,
- 0,
- 448,
- 449,
- 5,
- 101,
- 0,
- 0,
- 449,
- 450,
- 5,
- 114,
- 0,
- 0,
- 450,
- 451,
- 5,
- 105,
- 0,
- 0,
- 451,
- 452,
- 5,
- 97,
- 0,
- 0,
- 452,
- 453,
- 5,
- 108,
- 0,
- 0,
- 453,
- 90,
- 1,
- 0,
- 0,
- 0,
- 454,
- 455,
- 5,
- 111,
- 0,
- 0,
- 455,
- 456,
- 5,
- 110,
- 0,
- 0,
- 456,
- 457,
- 5,
- 101,
- 0,
- 0,
- 457,
- 458,
- 5,
- 95,
- 0,
- 0,
- 458,
- 459,
- 5,
- 111,
- 0,
- 0,
- 459,
- 460,
- 5,
- 102,
- 0,
- 0,
- 460,
- 92,
- 1,
- 0,
- 0,
- 0,
- 461,
- 462,
- 5,
- 112,
- 0,
- 0,
- 462,
- 463,
- 5,
- 97,
- 0,
- 0,
- 463,
- 464,
- 5,
- 114,
- 0,
- 0,
- 464,
- 465,
- 5,
- 97,
- 0,
- 0,
- 465,
- 466,
- 5,
- 108,
- 0,
- 0,
- 466,
- 467,
- 5,
- 108,
- 0,
- 0,
- 467,
- 468,
- 5,
- 101,
- 0,
- 0,
- 468,
- 469,
- 5,
- 108,
- 0,
- 0,
- 469,
- 94,
- 1,
- 0,
- 0,
- 0,
- 470,
- 471,
- 5,
- 119,
- 0,
- 0,
- 471,
- 472,
- 5,
- 97,
- 0,
- 0,
- 472,
- 473,
- 5,
- 105,
- 0,
- 0,
- 473,
- 474,
- 5,
- 116,
- 0,
- 0,
- 474,
- 96,
- 1,
- 0,
- 0,
- 0,
- 475,
- 476,
- 5,
- 101,
- 0,
- 0,
- 476,
- 477,
- 5,
- 109,
- 0,
- 0,
- 477,
- 478,
- 5,
- 105,
- 0,
- 0,
- 478,
- 479,
- 5,
- 116,
- 0,
- 0,
- 479,
- 98,
- 1,
- 0,
- 0,
- 0,
- 480,
- 481,
- 5,
- 99,
- 0,
- 0,
- 481,
- 482,
- 5,
- 97,
- 0,
- 0,
- 482,
- 483,
- 5,
- 108,
- 0,
- 0,
- 483,
- 484,
- 5,
- 108,
- 0,
- 0,
- 484,
- 100,
- 1,
- 0,
- 0,
- 0,
- 485,
- 486,
- 5,
- 117,
- 0,
- 0,
- 486,
- 487,
- 5,
- 110,
- 0,
- 0,
- 487,
- 488,
- 5,
- 116,
- 0,
- 0,
- 488,
- 489,
- 5,
- 105,
- 0,
- 0,
- 489,
- 490,
- 5,
- 108,
- 0,
- 0,
- 490,
- 102,
- 1,
- 0,
- 0,
- 0,
- 491,
- 492,
- 5,
- 100,
- 0,
- 0,
- 492,
- 493,
- 5,
- 101,
- 0,
- 0,
- 493,
- 494,
- 5,
- 102,
- 0,
- 0,
- 494,
- 104,
- 1,
- 0,
- 0,
- 0,
- 495,
- 496,
- 5,
- 45,
- 0,
- 0,
- 496,
- 497,
- 5,
- 62,
- 0,
- 0,
- 497,
- 106,
- 1,
- 0,
- 0,
- 0,
- 498,
- 499,
- 5,
- 101,
- 0,
- 0,
- 499,
- 500,
- 5,
- 120,
- 0,
- 0,
- 500,
- 501,
- 5,
- 112,
- 0,
- 0,
- 501,
- 502,
- 5,
- 114,
- 0,
- 0,
- 502,
- 503,
- 5,
- 101,
- 0,
- 0,
- 503,
- 504,
- 5,
- 115,
- 0,
- 0,
- 504,
- 505,
- 5,
- 115,
- 0,
- 0,
- 505,
- 506,
- 5,
- 105,
- 0,
- 0,
- 506,
- 507,
- 5,
- 111,
- 0,
- 0,
- 507,
- 508,
- 5,
- 110,
- 0,
- 0,
- 508,
- 108,
- 1,
- 0,
- 0,
- 0,
- 509,
- 510,
- 5,
- 117,
- 0,
- 0,
- 510,
- 511,
- 5,
- 110,
- 0,
- 0,
- 511,
- 512,
- 5,
- 100,
- 0,
- 0,
- 512,
- 513,
- 5,
- 101,
- 0,
- 0,
- 513,
- 514,
- 5,
- 102,
- 0,
- 0,
- 514,
- 515,
- 5,
- 105,
- 0,
- 0,
- 515,
- 516,
- 5,
- 110,
- 0,
- 0,
- 516,
- 517,
- 5,
- 101,
- 0,
- 0,
- 517,
- 518,
- 5,
- 100,
- 0,
- 0,
- 518,
- 110,
- 1,
- 0,
- 0,
- 0,
- 519,
- 520,
- 5,
- 101,
- 0,
- 0,
- 520,
- 521,
- 5,
- 120,
- 0,
- 0,
- 521,
- 522,
- 5,
- 116,
- 0,
- 0,
- 522,
- 523,
- 5,
- 101,
- 0,
- 0,
- 523,
- 524,
- 5,
- 114,
- 0,
- 0,
- 524,
- 525,
- 5,
- 110,
- 0,
- 0,
- 525,
- 526,
- 5,
- 97,
- 0,
- 0,
- 526,
- 527,
- 5,
- 108,
- 0,
- 0,
- 527,
- 112,
- 1,
- 0,
- 0,
- 0,
- 528,
- 529,
- 5,
- 111,
- 0,
- 0,
- 529,
- 530,
- 5,
- 110,
- 0,
- 0,
- 530,
- 531,
- 5,
- 108,
- 0,
- 0,
- 531,
- 532,
- 5,
- 121,
- 0,
- 0,
- 532,
- 114,
- 1,
- 0,
- 0,
- 0,
- 533,
- 534,
- 5,
- 99,
- 0,
- 0,
- 534,
- 535,
- 5,
- 111,
- 0,
- 0,
- 535,
- 536,
- 5,
- 118,
- 0,
- 0,
- 536,
- 537,
- 5,
- 101,
- 0,
- 0,
- 537,
- 538,
- 5,
- 114,
- 0,
- 0,
- 538,
- 116,
- 1,
- 0,
- 0,
- 0,
- 539,
- 540,
- 5,
- 114,
- 0,
- 0,
- 540,
- 541,
- 5,
- 101,
- 0,
- 0,
- 541,
- 542,
- 5,
- 99,
- 0,
- 0,
- 542,
- 543,
- 5,
- 111,
- 0,
- 0,
- 543,
- 544,
- 5,
- 114,
- 0,
- 0,
- 544,
- 545,
- 5,
- 100,
- 0,
- 0,
- 545,
- 118,
- 1,
- 0,
- 0,
- 0,
- 546,
- 547,
- 5,
- 114,
- 0,
- 0,
- 547,
- 548,
- 5,
- 97,
- 0,
- 0,
- 548,
- 549,
- 5,
- 110,
- 0,
- 0,
- 549,
- 550,
- 5,
- 103,
- 0,
- 0,
- 550,
- 551,
- 5,
- 101,
- 0,
- 0,
- 551,
- 120,
- 1,
- 0,
- 0,
- 0,
- 552,
- 553,
- 5,
- 63,
- 0,
- 0,
- 553,
- 122,
- 1,
- 0,
- 0,
- 0,
- 554,
- 555,
- 5,
- 61,
- 0,
- 0,
- 555,
- 556,
- 5,
- 62,
- 0,
- 0,
- 556,
- 124,
- 1,
- 0,
- 0,
- 0,
- 557,
- 558,
- 5,
- 111,
- 0,
- 0,
- 558,
- 559,
- 5,
- 114,
- 0,
- 0,
- 559,
- 126,
- 1,
- 0,
- 0,
- 0,
- 560,
- 561,
- 5,
- 97,
- 0,
- 0,
- 561,
- 562,
- 5,
- 110,
- 0,
- 0,
- 562,
- 563,
- 5,
- 100,
- 0,
- 0,
- 563,
- 128,
- 1,
- 0,
- 0,
- 0,
- 564,
- 565,
- 5,
- 110,
- 0,
- 0,
- 565,
- 566,
- 5,
- 111,
- 0,
- 0,
- 566,
- 567,
- 5,
- 116,
- 0,
- 0,
- 567,
- 130,
- 1,
- 0,
- 0,
- 0,
- 568,
- 569,
- 5,
- 33,
- 0,
- 0,
- 569,
- 570,
- 5,
- 61,
- 0,
- 0,
- 570,
- 132,
- 1,
- 0,
- 0,
- 0,
- 571,
- 572,
- 5,
- 60,
- 0,
- 0,
- 572,
- 134,
- 1,
- 0,
- 0,
- 0,
- 573,
- 574,
- 5,
- 60,
- 0,
- 0,
- 574,
- 575,
- 5,
- 61,
- 0,
- 0,
- 575,
- 136,
- 1,
- 0,
- 0,
- 0,
- 576,
- 577,
- 5,
- 62,
- 0,
- 0,
- 577,
- 138,
- 1,
- 0,
- 0,
- 0,
- 578,
- 579,
- 5,
- 62,
- 0,
- 0,
- 579,
- 580,
- 5,
- 61,
- 0,
- 0,
- 580,
- 140,
- 1,
- 0,
- 0,
- 0,
- 581,
- 582,
- 5,
- 105,
- 0,
- 0,
- 582,
- 583,
- 5,
- 110,
- 0,
- 0,
- 583,
- 142,
- 1,
- 0,
- 0,
- 0,
- 584,
- 585,
- 5,
- 43,
- 0,
- 0,
- 585,
- 144,
- 1,
- 0,
- 0,
- 0,
- 586,
- 587,
- 5,
- 45,
- 0,
- 0,
- 587,
- 146,
- 1,
- 0,
- 0,
- 0,
- 588,
- 589,
- 5,
- 42,
- 0,
- 0,
- 589,
- 148,
- 1,
- 0,
- 0,
- 0,
- 590,
- 591,
- 5,
- 47,
- 0,
- 0,
- 591,
- 150,
- 1,
- 0,
- 0,
- 0,
- 592,
- 593,
- 5,
- 37,
- 0,
- 0,
- 593,
- 152,
- 1,
- 0,
- 0,
- 0,
- 594,
- 595,
- 5,
- 105,
- 0,
- 0,
- 595,
- 596,
- 5,
- 116,
- 0,
- 0,
- 596,
- 154,
- 1,
- 0,
- 0,
- 0,
- 597,
- 598,
- 5,
- 46,
- 0,
- 0,
- 598,
- 599,
- 5,
- 46,
- 0,
- 0,
- 599,
- 156,
- 1,
- 0,
- 0,
- 0,
- 600,
- 601,
- 4,
- 78,
- 0,
- 0,
- 601,
- 613,
- 3,
- 169,
- 84,
- 0,
- 602,
- 604,
- 5,
- 13,
- 0,
- 0,
- 603,
- 602,
- 1,
- 0,
- 0,
- 0,
- 603,
- 604,
- 1,
- 0,
- 0,
- 0,
- 604,
- 605,
- 1,
- 0,
- 0,
- 0,
- 605,
- 608,
- 5,
- 10,
- 0,
- 0,
- 606,
- 608,
- 2,
- 12,
- 13,
- 0,
- 607,
- 603,
- 1,
- 0,
- 0,
- 0,
- 607,
- 606,
- 1,
- 0,
- 0,
- 0,
- 608,
- 610,
- 1,
- 0,
- 0,
- 0,
- 609,
- 611,
- 3,
- 169,
- 84,
- 0,
- 610,
- 609,
- 1,
- 0,
- 0,
- 0,
- 610,
- 611,
- 1,
- 0,
- 0,
- 0,
- 611,
- 613,
- 1,
- 0,
- 0,
- 0,
- 612,
- 600,
- 1,
- 0,
- 0,
- 0,
- 612,
- 607,
- 1,
- 0,
- 0,
- 0,
- 613,
- 614,
- 1,
- 0,
- 0,
- 0,
- 614,
- 615,
- 6,
- 78,
- 0,
- 0,
- 615,
- 158,
- 1,
- 0,
- 0,
- 0,
- 616,
- 617,
- 5,
- 91,
- 0,
- 0,
- 617,
- 618,
- 6,
- 79,
- 1,
- 0,
- 618,
- 160,
- 1,
- 0,
- 0,
- 0,
- 619,
- 620,
- 5,
- 93,
- 0,
- 0,
- 620,
- 621,
- 6,
- 80,
- 2,
- 0,
- 621,
- 162,
- 1,
- 0,
- 0,
- 0,
- 622,
- 623,
- 5,
- 40,
- 0,
- 0,
- 623,
- 624,
- 6,
- 81,
- 3,
- 0,
- 624,
- 164,
- 1,
- 0,
- 0,
- 0,
- 625,
- 626,
- 5,
- 41,
- 0,
- 0,
- 626,
- 627,
- 6,
- 82,
- 4,
- 0,
- 627,
- 166,
- 1,
- 0,
- 0,
- 0,
- 628,
- 631,
- 3,
- 169,
- 84,
- 0,
- 629,
- 631,
- 3,
- 171,
- 85,
- 0,
- 630,
- 628,
- 1,
- 0,
- 0,
- 0,
- 630,
- 629,
- 1,
- 0,
- 0,
- 0,
- 631,
- 632,
- 1,
- 0,
- 0,
- 0,
- 632,
- 633,
- 6,
- 83,
- 5,
- 0,
- 633,
- 168,
- 1,
- 0,
- 0,
- 0,
- 634,
- 636,
- 7,
- 0,
- 0,
- 0,
- 635,
- 634,
- 1,
- 0,
- 0,
- 0,
- 636,
- 637,
- 1,
- 0,
- 0,
- 0,
- 637,
- 635,
- 1,
- 0,
- 0,
- 0,
- 637,
- 638,
- 1,
- 0,
- 0,
- 0,
- 638,
- 170,
- 1,
- 0,
- 0,
- 0,
- 639,
- 641,
- 5,
- 92,
- 0,
- 0,
- 640,
- 642,
- 3,
- 169,
- 84,
- 0,
- 641,
- 640,
- 1,
- 0,
- 0,
- 0,
- 641,
- 642,
- 1,
- 0,
- 0,
- 0,
- 642,
- 644,
- 1,
- 0,
- 0,
- 0,
- 643,
- 645,
- 5,
- 13,
- 0,
- 0,
- 644,
- 643,
- 1,
- 0,
- 0,
- 0,
- 644,
- 645,
- 1,
- 0,
- 0,
- 0,
- 645,
- 646,
- 1,
- 0,
- 0,
- 0,
- 646,
- 647,
- 5,
- 10,
- 0,
- 0,
- 647,
- 172,
- 1,
- 0,
- 0,
- 0,
- 648,
- 650,
- 5,
- 13,
- 0,
- 0,
- 649,
- 648,
- 1,
- 0,
- 0,
- 0,
- 649,
- 650,
- 1,
- 0,
- 0,
- 0,
- 650,
- 651,
- 1,
- 0,
- 0,
- 0,
- 651,
- 652,
- 5,
- 10,
- 0,
- 0,
- 652,
- 174,
- 1,
- 0,
- 0,
- 0,
- 653,
- 654,
- 5,
- 47,
- 0,
- 0,
- 654,
- 655,
- 5,
- 42,
- 0,
- 0,
- 655,
- 659,
- 1,
- 0,
- 0,
- 0,
- 656,
- 658,
- 9,
- 0,
- 0,
- 0,
- 657,
- 656,
- 1,
- 0,
- 0,
- 0,
- 658,
- 661,
- 1,
- 0,
- 0,
- 0,
- 659,
- 660,
- 1,
- 0,
- 0,
- 0,
- 659,
- 657,
- 1,
- 0,
- 0,
- 0,
- 660,
- 662,
- 1,
- 0,
- 0,
- 0,
- 661,
- 659,
- 1,
- 0,
- 0,
- 0,
- 662,
- 663,
- 5,
- 42,
- 0,
- 0,
- 663,
- 664,
- 5,
- 47,
- 0,
- 0,
- 664,
- 665,
- 1,
- 0,
- 0,
- 0,
- 665,
- 666,
- 6,
- 87,
- 5,
- 0,
- 666,
- 176,
- 1,
- 0,
- 0,
- 0,
- 667,
- 671,
- 5,
- 35,
- 0,
- 0,
- 668,
- 670,
- 8,
- 1,
- 0,
- 0,
- 669,
- 668,
- 1,
- 0,
- 0,
- 0,
- 670,
- 673,
- 1,
- 0,
- 0,
- 0,
- 671,
- 669,
- 1,
- 0,
- 0,
- 0,
- 671,
- 672,
- 1,
- 0,
- 0,
- 0,
- 672,
- 674,
- 1,
- 0,
- 0,
- 0,
- 673,
- 671,
- 1,
- 0,
- 0,
- 0,
- 674,
- 675,
- 6,
- 88,
- 5,
- 0,
- 675,
- 178,
- 1,
- 0,
- 0,
- 0,
- 676,
- 679,
- 3,
- 181,
- 90,
- 0,
- 677,
- 679,
- 3,
- 187,
- 93,
- 0,
- 678,
- 676,
- 1,
- 0,
- 0,
- 0,
- 678,
- 677,
- 1,
- 0,
- 0,
- 0,
- 679,
- 180,
- 1,
- 0,
- 0,
- 0,
- 680,
- 684,
- 5,
- 34,
- 0,
- 0,
- 681,
- 683,
- 3,
- 183,
- 91,
- 0,
- 682,
- 681,
- 1,
- 0,
- 0,
- 0,
- 683,
- 686,
- 1,
- 0,
- 0,
- 0,
- 684,
- 682,
- 1,
- 0,
- 0,
- 0,
- 684,
- 685,
- 1,
- 0,
- 0,
- 0,
- 685,
- 687,
- 1,
- 0,
- 0,
- 0,
- 686,
- 684,
- 1,
- 0,
- 0,
- 0,
- 687,
- 697,
- 5,
- 34,
- 0,
- 0,
- 688,
- 692,
- 5,
- 39,
- 0,
- 0,
- 689,
- 691,
- 3,
- 183,
- 91,
- 0,
- 690,
- 689,
- 1,
- 0,
- 0,
- 0,
- 691,
- 694,
- 1,
- 0,
- 0,
- 0,
- 692,
- 690,
- 1,
- 0,
- 0,
- 0,
- 692,
- 693,
- 1,
- 0,
- 0,
- 0,
- 693,
- 695,
- 1,
- 0,
- 0,
- 0,
- 694,
- 692,
- 1,
- 0,
- 0,
- 0,
- 695,
- 697,
- 5,
- 39,
- 0,
- 0,
- 696,
- 680,
- 1,
- 0,
- 0,
- 0,
- 696,
- 688,
- 1,
- 0,
- 0,
- 0,
- 697,
- 182,
- 1,
- 0,
- 0,
- 0,
- 698,
- 701,
- 3,
- 185,
- 92,
- 0,
- 699,
- 701,
- 3,
- 193,
- 96,
- 0,
- 700,
- 698,
- 1,
- 0,
- 0,
- 0,
- 700,
- 699,
- 1,
- 0,
- 0,
- 0,
- 701,
- 184,
- 1,
- 0,
- 0,
- 0,
- 702,
- 703,
- 8,
- 2,
- 0,
- 0,
- 703,
- 186,
- 1,
- 0,
- 0,
- 0,
- 704,
- 705,
- 5,
- 34,
- 0,
- 0,
- 705,
- 706,
- 5,
- 34,
- 0,
- 0,
- 706,
- 707,
- 5,
- 34,
- 0,
- 0,
- 707,
- 711,
- 1,
- 0,
- 0,
- 0,
- 708,
- 710,
- 3,
- 189,
- 94,
- 0,
- 709,
- 708,
- 1,
- 0,
- 0,
- 0,
- 710,
- 713,
- 1,
- 0,
- 0,
- 0,
- 711,
- 709,
- 1,
- 0,
- 0,
- 0,
- 711,
- 712,
- 1,
- 0,
- 0,
- 0,
- 712,
- 714,
- 1,
- 0,
- 0,
- 0,
- 713,
- 711,
- 1,
- 0,
- 0,
- 0,
- 714,
- 715,
- 5,
- 34,
- 0,
- 0,
- 715,
- 716,
- 5,
- 34,
- 0,
- 0,
- 716,
- 731,
- 5,
- 34,
- 0,
- 0,
- 717,
- 718,
- 5,
- 39,
- 0,
- 0,
- 718,
- 719,
- 5,
- 39,
- 0,
- 0,
- 719,
- 720,
- 5,
- 39,
- 0,
- 0,
- 720,
- 724,
- 1,
- 0,
- 0,
- 0,
- 721,
- 723,
- 3,
- 189,
- 94,
- 0,
- 722,
- 721,
- 1,
- 0,
- 0,
- 0,
- 723,
- 726,
- 1,
- 0,
- 0,
- 0,
- 724,
- 722,
- 1,
- 0,
- 0,
- 0,
- 724,
- 725,
- 1,
- 0,
- 0,
- 0,
- 725,
- 727,
- 1,
- 0,
- 0,
- 0,
- 726,
- 724,
- 1,
- 0,
- 0,
- 0,
- 727,
- 728,
- 5,
- 39,
- 0,
- 0,
- 728,
- 729,
- 5,
- 39,
- 0,
- 0,
- 729,
- 731,
- 5,
- 39,
- 0,
- 0,
- 730,
- 704,
- 1,
- 0,
- 0,
- 0,
- 730,
- 717,
- 1,
- 0,
- 0,
- 0,
- 731,
- 188,
- 1,
- 0,
- 0,
- 0,
- 732,
- 735,
- 3,
- 191,
- 95,
- 0,
- 733,
- 735,
- 3,
- 193,
- 96,
- 0,
- 734,
- 732,
- 1,
- 0,
- 0,
- 0,
- 734,
- 733,
- 1,
- 0,
- 0,
- 0,
- 735,
- 190,
- 1,
- 0,
- 0,
- 0,
- 736,
- 737,
- 8,
- 3,
- 0,
- 0,
- 737,
- 192,
- 1,
- 0,
- 0,
- 0,
- 738,
- 739,
- 5,
- 92,
- 0,
- 0,
- 739,
- 743,
- 9,
- 0,
- 0,
- 0,
- 740,
- 741,
- 5,
- 92,
- 0,
- 0,
- 741,
- 743,
- 3,
- 173,
- 86,
- 0,
- 742,
- 738,
- 1,
- 0,
- 0,
- 0,
- 742,
- 740,
- 1,
- 0,
- 0,
- 0,
- 743,
- 194,
- 1,
- 0,
- 0,
- 0,
- 744,
- 746,
- 7,
- 4,
- 0,
- 0,
- 745,
- 744,
- 1,
- 0,
- 0,
- 0,
- 745,
- 746,
- 1,
- 0,
- 0,
- 0,
- 746,
- 750,
- 1,
- 0,
- 0,
- 0,
- 747,
- 749,
- 3,
- 209,
- 104,
- 0,
- 748,
- 747,
- 1,
- 0,
- 0,
- 0,
- 749,
- 752,
- 1,
- 0,
- 0,
- 0,
- 750,
- 748,
- 1,
- 0,
- 0,
- 0,
- 750,
- 751,
- 1,
- 0,
- 0,
- 0,
- 751,
- 753,
- 1,
- 0,
- 0,
- 0,
- 752,
- 750,
- 1,
- 0,
- 0,
- 0,
- 753,
- 755,
- 5,
- 46,
- 0,
- 0,
- 754,
- 756,
- 3,
- 209,
- 104,
- 0,
- 755,
- 754,
- 1,
- 0,
- 0,
- 0,
- 756,
- 757,
- 1,
- 0,
- 0,
- 0,
- 757,
- 755,
- 1,
- 0,
- 0,
- 0,
- 757,
- 758,
- 1,
- 0,
- 0,
- 0,
- 758,
- 768,
- 1,
- 0,
- 0,
- 0,
- 759,
- 761,
- 7,
- 5,
- 0,
- 0,
- 760,
- 762,
- 7,
- 4,
- 0,
- 0,
- 761,
- 760,
- 1,
- 0,
- 0,
- 0,
- 761,
- 762,
- 1,
- 0,
- 0,
- 0,
- 762,
- 764,
- 1,
- 0,
- 0,
- 0,
- 763,
- 765,
- 3,
- 209,
- 104,
- 0,
- 764,
- 763,
- 1,
- 0,
- 0,
- 0,
- 765,
- 766,
- 1,
- 0,
- 0,
- 0,
- 766,
- 764,
- 1,
- 0,
- 0,
- 0,
- 766,
- 767,
- 1,
- 0,
- 0,
- 0,
- 767,
- 769,
- 1,
- 0,
- 0,
- 0,
- 768,
- 759,
- 1,
- 0,
- 0,
- 0,
- 768,
- 769,
- 1,
- 0,
- 0,
- 0,
- 769,
- 196,
- 1,
- 0,
- 0,
- 0,
- 770,
- 772,
- 3,
- 209,
- 104,
- 0,
- 771,
- 770,
- 1,
- 0,
- 0,
- 0,
- 772,
- 773,
- 1,
- 0,
- 0,
- 0,
- 773,
- 771,
- 1,
- 0,
- 0,
- 0,
- 773,
- 774,
- 1,
- 0,
- 0,
- 0,
- 774,
- 198,
- 1,
- 0,
- 0,
- 0,
- 775,
- 776,
- 5,
- 48,
- 0,
- 0,
- 776,
- 777,
- 5,
- 120,
- 0,
- 0,
- 777,
- 779,
- 1,
- 0,
- 0,
- 0,
- 778,
- 780,
- 3,
- 211,
- 105,
- 0,
- 779,
- 778,
- 1,
- 0,
- 0,
- 0,
- 780,
- 781,
- 1,
- 0,
- 0,
- 0,
- 781,
- 779,
- 1,
- 0,
- 0,
- 0,
- 781,
- 782,
- 1,
- 0,
- 0,
- 0,
- 782,
- 200,
- 1,
- 0,
- 0,
- 0,
- 783,
- 785,
- 5,
- 45,
- 0,
- 0,
- 784,
- 786,
- 3,
- 209,
- 104,
- 0,
- 785,
- 784,
- 1,
- 0,
- 0,
- 0,
- 786,
- 787,
- 1,
- 0,
- 0,
- 0,
- 787,
- 785,
- 1,
- 0,
- 0,
- 0,
- 787,
- 788,
- 1,
- 0,
- 0,
- 0,
- 788,
- 202,
- 1,
- 0,
- 0,
- 0,
- 789,
- 790,
- 5,
- 116,
- 0,
- 0,
- 790,
- 791,
- 5,
- 114,
- 0,
- 0,
- 791,
- 792,
- 5,
- 117,
- 0,
- 0,
- 792,
- 799,
- 5,
- 101,
- 0,
- 0,
- 793,
- 794,
- 5,
- 102,
- 0,
- 0,
- 794,
- 795,
- 5,
- 97,
- 0,
- 0,
- 795,
- 796,
- 5,
- 108,
- 0,
- 0,
- 796,
- 797,
- 5,
- 115,
- 0,
- 0,
- 797,
- 799,
- 5,
- 101,
- 0,
- 0,
- 798,
- 789,
- 1,
- 0,
- 0,
- 0,
- 798,
- 793,
- 1,
- 0,
- 0,
- 0,
- 799,
- 204,
- 1,
- 0,
- 0,
- 0,
- 800,
- 804,
- 3,
- 213,
- 106,
- 0,
- 801,
- 803,
- 3,
- 215,
- 107,
- 0,
- 802,
- 801,
- 1,
- 0,
- 0,
- 0,
- 803,
- 806,
- 1,
- 0,
- 0,
- 0,
- 804,
- 802,
- 1,
- 0,
- 0,
- 0,
- 804,
- 805,
- 1,
- 0,
- 0,
- 0,
- 805,
- 816,
- 1,
- 0,
- 0,
- 0,
- 806,
- 804,
- 1,
- 0,
- 0,
- 0,
- 807,
- 809,
- 5,
- 124,
- 0,
- 0,
- 808,
- 810,
- 3,
- 207,
- 103,
- 0,
- 809,
- 808,
- 1,
- 0,
- 0,
- 0,
- 810,
- 811,
- 1,
- 0,
- 0,
- 0,
- 811,
- 809,
- 1,
- 0,
- 0,
- 0,
- 811,
- 812,
- 1,
- 0,
- 0,
- 0,
- 812,
- 813,
- 1,
- 0,
- 0,
- 0,
- 813,
- 814,
- 5,
- 124,
- 0,
- 0,
- 814,
- 816,
- 1,
- 0,
- 0,
- 0,
- 815,
- 800,
- 1,
- 0,
- 0,
- 0,
- 815,
- 807,
- 1,
- 0,
- 0,
- 0,
- 816,
- 206,
- 1,
- 0,
- 0,
- 0,
- 817,
- 818,
- 8,
- 6,
- 0,
- 0,
- 818,
- 208,
- 1,
- 0,
- 0,
- 0,
- 819,
- 820,
- 7,
- 7,
- 0,
- 0,
- 820,
- 210,
- 1,
- 0,
- 0,
- 0,
- 821,
- 822,
- 7,
- 8,
- 0,
- 0,
- 822,
- 212,
- 1,
- 0,
- 0,
- 0,
- 823,
- 825,
- 7,
- 9,
- 0,
- 0,
- 824,
- 823,
- 1,
- 0,
- 0,
- 0,
- 825,
- 214,
- 1,
- 0,
- 0,
- 0,
- 826,
- 829,
- 3,
- 213,
- 106,
- 0,
- 827,
- 829,
- 7,
- 10,
- 0,
- 0,
- 828,
- 826,
- 1,
- 0,
- 0,
- 0,
- 828,
- 827,
- 1,
- 0,
- 0,
- 0,
- 829,
- 216,
- 1,
- 0,
- 0,
- 0,
- 37,
- 0,
- 603,
- 607,
- 610,
- 612,
- 630,
- 637,
- 641,
- 644,
- 649,
- 659,
- 671,
- 678,
- 684,
- 692,
- 696,
- 700,
- 711,
- 724,
- 730,
- 734,
- 742,
- 745,
- 750,
- 757,
- 761,
- 766,
- 768,
- 773,
- 781,
- 787,
- 798,
- 804,
- 811,
- 815,
- 824,
- 828,
- 6,
- 1,
- 78,
- 0,
- 1,
- 79,
- 1,
- 1,
- 80,
- 2,
- 1,
- 81,
- 3,
- 1,
- 82,
- 4,
- 6,
- 0,
- 0,
- ]
-
-
-class OpenSCENARIO2Lexer(Lexer):
- atn = ATNDeserializer().deserialize(serializedATN())
-
- decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)]
-
- T__0 = 1
- T__1 = 2
- T__2 = 3
- T__3 = 4
- T__4 = 5
- T__5 = 6
- T__6 = 7
- T__7 = 8
- T__8 = 9
- T__9 = 10
- T__10 = 11
- T__11 = 12
- T__12 = 13
- T__13 = 14
- T__14 = 15
- T__15 = 16
- T__16 = 17
- T__17 = 18
- T__18 = 19
- T__19 = 20
- T__20 = 21
- T__21 = 22
- T__22 = 23
- T__23 = 24
- T__24 = 25
- T__25 = 26
- T__26 = 27
- T__27 = 28
- T__28 = 29
- T__29 = 30
- T__30 = 31
- T__31 = 32
- T__32 = 33
- T__33 = 34
- T__34 = 35
- T__35 = 36
- T__36 = 37
- T__37 = 38
- T__38 = 39
- T__39 = 40
- T__40 = 41
- T__41 = 42
- T__42 = 43
- T__43 = 44
- T__44 = 45
- T__45 = 46
- T__46 = 47
- T__47 = 48
- T__48 = 49
- T__49 = 50
- T__50 = 51
- T__51 = 52
- T__52 = 53
- T__53 = 54
- T__54 = 55
- T__55 = 56
- T__56 = 57
- T__57 = 58
- T__58 = 59
- T__59 = 60
- T__60 = 61
- T__61 = 62
- T__62 = 63
- T__63 = 64
- T__64 = 65
- T__65 = 66
- T__66 = 67
- T__67 = 68
- T__68 = 69
- T__69 = 70
- T__70 = 71
- T__71 = 72
- T__72 = 73
- T__73 = 74
- T__74 = 75
- T__75 = 76
- T__76 = 77
- T__77 = 78
- NEWLINE = 79
- OPEN_BRACK = 80
- CLOSE_BRACK = 81
- OPEN_PAREN = 82
- CLOSE_PAREN = 83
- SKIP_ = 84
- BLOCK_COMMENT = 85
- LINE_COMMENT = 86
- StringLiteral = 87
- FloatLiteral = 88
- UintLiteral = 89
- HexUintLiteral = 90
- IntLiteral = 91
- BoolLiteral = 92
- Identifier = 93
-
- channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"]
-
- modeNames = ["DEFAULT_MODE"]
-
- literalNames = [
- "",
- "'import'",
- "'.'",
- "'type'",
- "'is'",
- "'SI'",
- "'unit'",
- "'of'",
- "','",
- "':'",
- "'enum'",
- "'='",
- "'!'",
- "'=='",
- "'struct'",
- "'inherits'",
- "'actor'",
- "'scenario'",
- "'action'",
- "'modifier'",
- "'extend'",
- "'global'",
- "'list'",
- "'int'",
- "'uint'",
- "'float'",
- "'bool'",
- "'string'",
- "'event'",
- "'if'",
- "'@'",
- "'as'",
- "'rise'",
- "'fall'",
- "'elapsed'",
- "'every'",
- "'var'",
- "'sample'",
- "'with'",
- "'keep'",
- "'default'",
- "'hard'",
- "'remove_default'",
- "'on'",
- "'do'",
- "'serial'",
- "'one_of'",
- "'parallel'",
- "'wait'",
- "'emit'",
- "'call'",
- "'until'",
- "'def'",
- "'->'",
- "'expression'",
- "'undefined'",
- "'external'",
- "'only'",
- "'cover'",
- "'record'",
- "'range'",
- "'?'",
- "'=>'",
- "'or'",
- "'and'",
- "'not'",
- "'!='",
- "'<'",
- "'<='",
- "'>'",
- "'>='",
- "'in'",
- "'+'",
- "'-'",
- "'*'",
- "'/'",
- "'%'",
- "'it'",
- "'..'",
- "'['",
- "']'",
- "'('",
- "')'",
- ]
-
- symbolicNames = [
- "",
- "NEWLINE",
- "OPEN_BRACK",
- "CLOSE_BRACK",
- "OPEN_PAREN",
- "CLOSE_PAREN",
- "SKIP_",
- "BLOCK_COMMENT",
- "LINE_COMMENT",
- "StringLiteral",
- "FloatLiteral",
- "UintLiteral",
- "HexUintLiteral",
- "IntLiteral",
- "BoolLiteral",
- "Identifier",
- ]
-
- ruleNames = [
- "T__0",
- "T__1",
- "T__2",
- "T__3",
- "T__4",
- "T__5",
- "T__6",
- "T__7",
- "T__8",
- "T__9",
- "T__10",
- "T__11",
- "T__12",
- "T__13",
- "T__14",
- "T__15",
- "T__16",
- "T__17",
- "T__18",
- "T__19",
- "T__20",
- "T__21",
- "T__22",
- "T__23",
- "T__24",
- "T__25",
- "T__26",
- "T__27",
- "T__28",
- "T__29",
- "T__30",
- "T__31",
- "T__32",
- "T__33",
- "T__34",
- "T__35",
- "T__36",
- "T__37",
- "T__38",
- "T__39",
- "T__40",
- "T__41",
- "T__42",
- "T__43",
- "T__44",
- "T__45",
- "T__46",
- "T__47",
- "T__48",
- "T__49",
- "T__50",
- "T__51",
- "T__52",
- "T__53",
- "T__54",
- "T__55",
- "T__56",
- "T__57",
- "T__58",
- "T__59",
- "T__60",
- "T__61",
- "T__62",
- "T__63",
- "T__64",
- "T__65",
- "T__66",
- "T__67",
- "T__68",
- "T__69",
- "T__70",
- "T__71",
- "T__72",
- "T__73",
- "T__74",
- "T__75",
- "T__76",
- "T__77",
- "NEWLINE",
- "OPEN_BRACK",
- "CLOSE_BRACK",
- "OPEN_PAREN",
- "CLOSE_PAREN",
- "SKIP_",
- "SPACES",
- "LINE_JOINING",
- "RN",
- "BLOCK_COMMENT",
- "LINE_COMMENT",
- "StringLiteral",
- "Shortstring",
- "ShortstringElem",
- "ShortstringChar",
- "Longstring",
- "LongstringElem",
- "LongstringChar",
- "StringEscapeSeq",
- "FloatLiteral",
- "UintLiteral",
- "HexUintLiteral",
- "IntLiteral",
- "BoolLiteral",
- "Identifier",
- "NonVerticalLineChar",
- "Digit",
- "HexDigit",
- "IdStartChar",
- "IdChar",
- ]
-
- grammarFileName = "OpenSCENARIO2.g4"
-
- def __init__(self, input=None, output: TextIO = sys.stdout):
- super().__init__(input, output)
- self.checkVersion("4.10.1")
- self._interp = LexerATNSimulator(
- self, self.atn, self.decisionsToDFA, PredictionContextCache()
- )
- self._actions = None
- self._predicates = None
-
- @property
- def tokens(self):
- try:
- return self._tokens
- except AttributeError:
- self._tokens = []
- return self._tokens
-
- @property
- def indents(self):
- try:
- return self._indents
- except AttributeError:
- self._indents = []
- return self._indents
-
- @property
- def opened(self):
- try:
- return self._opened
- except AttributeError:
- self._opened = 0
- return self._opened
-
- @opened.setter
- def opened(self, value):
- self._opened = value
-
- @property
- def lastToken(self):
- try:
- return self._lastToken
- except AttributeError:
- self._lastToken = None
- return self._lastToken
-
- @lastToken.setter
- def lastToken(self, value):
- self._lastToken = value
-
- def reset(self):
- super().reset()
- self.tokens = []
- self.indents = []
- self.opened = 0
- self.lastToken = None
-
- def emitToken(self, t):
- super().emitToken(t)
- self.tokens.append(t)
-
- def nextToken(self):
- if self._input.LA(1) == Token.EOF and self.indents:
- for i in range(len(self.tokens) - 1, -1, -1):
- if self.tokens[i].type == Token.EOF:
- self.tokens.pop(i)
- self.emitToken(self.commonToken(LanguageParser.NEWLINE, "\n"))
- while self.indents:
- self.emitToken(self.createDedent())
- self.indents.pop()
- self.emitToken(self.commonToken(LanguageParser.EOF, ""))
- next = super().nextToken()
- if next.channel == Token.DEFAULT_CHANNEL:
- self.lastToken = next
- return next if not self.tokens else self.tokens.pop(0)
-
- def createDedent(self):
- dedent = self.commonToken(LanguageParser.DEDENT, "")
- dedent.line = self.lastToken.line
- return dedent
-
- def commonToken(self, type, text, indent=0):
- stop = self.getCharIndex() - 1 - indent
- start = (stop - len(text) + 1) if text else stop
- return CommonToken(
- self._tokenFactorySourcePair,
- type,
- super().DEFAULT_TOKEN_CHANNEL,
- start,
- stop,
- )
-
- @staticmethod
- def getIndentationCount(spaces):
- count = 0
- for ch in spaces:
- if ch == "\t":
- count += 8 - (count % 8)
- else:
- count += 1
- return count
-
- def atStartOfInput(self):
- return Lexer.column.fget(self) == 0 and Lexer.line.fget(self) == 1
-
- def action(self, localctx: RuleContext, ruleIndex: int, actionIndex: int):
- if self._actions is None:
- actions = dict()
- actions[78] = self.NEWLINE_action
- actions[79] = self.OPEN_BRACK_action
- actions[80] = self.CLOSE_BRACK_action
- actions[81] = self.OPEN_PAREN_action
- actions[82] = self.CLOSE_PAREN_action
- self._actions = actions
- action = self._actions.get(ruleIndex, None)
- if action is not None:
- action(localctx, actionIndex)
- else:
- raise Exception("No registered action for:" + str(ruleIndex))
-
- def NEWLINE_action(self, localctx: RuleContext, actionIndex: int):
- if actionIndex == 0:
- tempt = Lexer.text.fget(self)
- newLine = re.sub("[^\r\n\f]+", "", tempt)
- spaces = re.sub("[\r\n\f]+", "", tempt)
- la_char = ""
- try:
- la = self._input.LA(1)
- la_char = chr(la) # Python does not compare char to ints directly
- except ValueError: # End of file
- pass
- # Strip newlines inside open clauses except if we are near EOF. We keep NEWLINEs near EOF to
- # satisfy the final newline needed by the single_put rule used by the REPL.
- try:
- nextnext_la = self._input.LA(2)
- nextnext_la_char = chr(nextnext_la)
- except ValueError:
- nextnext_eof = True
- else:
- nextnext_eof = False
- if (
- self.opened > 0
- or nextnext_eof is False
- and (
- la_char == "\r"
- or la_char == "\n"
- or la_char == "\f"
- or la_char == "#"
- )
- ):
- self.skip()
- else:
- indent = self.getIndentationCount(spaces)
- previous = self.indents[-1] if self.indents else 0
- self.emitToken(
- self.commonToken(self.NEWLINE, newLine, indent=indent)
- ) # NEWLINE is actually the '\n' char
- if indent == previous:
- self.skip()
- elif indent > previous:
- self.indents.append(indent)
- self.emitToken(self.commonToken(LanguageParser.INDENT, spaces))
- else:
- while self.indents and self.indents[-1] > indent:
- self.emitToken(self.createDedent())
- self.indents.pop()
-
- def OPEN_BRACK_action(self, localctx: RuleContext, actionIndex: int):
- if actionIndex == 1:
- self.opened += 1
-
- def CLOSE_BRACK_action(self, localctx: RuleContext, actionIndex: int):
- if actionIndex == 2:
- self.opened -= 1
-
- def OPEN_PAREN_action(self, localctx: RuleContext, actionIndex: int):
- if actionIndex == 3:
- self.opened += 1
-
- def CLOSE_PAREN_action(self, localctx: RuleContext, actionIndex: int):
- if actionIndex == 4:
- self.opened -= 1
-
- def sempred(self, localctx: RuleContext, ruleIndex: int, predIndex: int):
- if self._predicates is None:
- preds = dict()
- preds[78] = self.NEWLINE_sempred
- self._predicates = preds
- pred = self._predicates.get(ruleIndex, None)
- if pred is not None:
- return pred(localctx, predIndex)
- else:
- raise Exception("No registered predicate for:" + str(ruleIndex))
-
- def NEWLINE_sempred(self, localctx: RuleContext, predIndex: int):
- if predIndex == 0:
- return self.atStartOfInput()
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.tokens b/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.tokens
deleted file mode 100644
index 6b98206..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2Lexer.tokens
+++ /dev/null
@@ -1,175 +0,0 @@
-T__0=1
-T__1=2
-T__2=3
-T__3=4
-T__4=5
-T__5=6
-T__6=7
-T__7=8
-T__8=9
-T__9=10
-T__10=11
-T__11=12
-T__12=13
-T__13=14
-T__14=15
-T__15=16
-T__16=17
-T__17=18
-T__18=19
-T__19=20
-T__20=21
-T__21=22
-T__22=23
-T__23=24
-T__24=25
-T__25=26
-T__26=27
-T__27=28
-T__28=29
-T__29=30
-T__30=31
-T__31=32
-T__32=33
-T__33=34
-T__34=35
-T__35=36
-T__36=37
-T__37=38
-T__38=39
-T__39=40
-T__40=41
-T__41=42
-T__42=43
-T__43=44
-T__44=45
-T__45=46
-T__46=47
-T__47=48
-T__48=49
-T__49=50
-T__50=51
-T__51=52
-T__52=53
-T__53=54
-T__54=55
-T__55=56
-T__56=57
-T__57=58
-T__58=59
-T__59=60
-T__60=61
-T__61=62
-T__62=63
-T__63=64
-T__64=65
-T__65=66
-T__66=67
-T__67=68
-T__68=69
-T__69=70
-T__70=71
-T__71=72
-T__72=73
-T__73=74
-T__74=75
-T__75=76
-T__76=77
-T__77=78
-NEWLINE=79
-OPEN_BRACK=80
-CLOSE_BRACK=81
-OPEN_PAREN=82
-CLOSE_PAREN=83
-SKIP_=84
-BLOCK_COMMENT=85
-LINE_COMMENT=86
-StringLiteral=87
-FloatLiteral=88
-UintLiteral=89
-HexUintLiteral=90
-IntLiteral=91
-BoolLiteral=92
-Identifier=93
-'import'=1
-'.'=2
-'type'=3
-'is'=4
-'SI'=5
-'unit'=6
-'of'=7
-','=8
-':'=9
-'enum'=10
-'='=11
-'!'=12
-'=='=13
-'struct'=14
-'inherits'=15
-'actor'=16
-'scenario'=17
-'action'=18
-'modifier'=19
-'extend'=20
-'global'=21
-'list'=22
-'int'=23
-'uint'=24
-'float'=25
-'bool'=26
-'string'=27
-'event'=28
-'if'=29
-'@'=30
-'as'=31
-'rise'=32
-'fall'=33
-'elapsed'=34
-'every'=35
-'var'=36
-'sample'=37
-'with'=38
-'keep'=39
-'default'=40
-'hard'=41
-'remove_default'=42
-'on'=43
-'do'=44
-'serial'=45
-'one_of'=46
-'parallel'=47
-'wait'=48
-'emit'=49
-'call'=50
-'until'=51
-'def'=52
-'->'=53
-'expression'=54
-'undefined'=55
-'external'=56
-'only'=57
-'cover'=58
-'record'=59
-'range'=60
-'?'=61
-'=>'=62
-'or'=63
-'and'=64
-'not'=65
-'!='=66
-'<'=67
-'<='=68
-'>'=69
-'>='=70
-'in'=71
-'+'=72
-'-'=73
-'*'=74
-'/'=75
-'%'=76
-'it'=77
-'..'=78
-'['=80
-']'=81
-'('=82
-')'=83
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2Listener.py b/srunner/osc2/osc2_parser/OpenSCENARIO2Listener.py
deleted file mode 100644
index ebfe90e..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2Listener.py
+++ /dev/null
@@ -1,1409 +0,0 @@
-# Generated from .\OpenSCENARIO2.g4 by ANTLR 4.10.1
-from antlr4 import *
-
-if __name__ is not None and "." in __name__:
- from .OpenSCENARIO2Parser import OpenSCENARIO2Parser
-else:
- from OpenSCENARIO2Parser import OpenSCENARIO2Parser
-
-
-# This class defines a complete listener for a parse tree produced by OpenSCENARIO2Parser.
-class OpenSCENARIO2Listener(ParseTreeListener):
- # Enter a parse tree produced by OpenSCENARIO2Parser#osc_file.
- def enterOsc_file(self, ctx: OpenSCENARIO2Parser.Osc_fileContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#osc_file.
- def exitOsc_file(self, ctx: OpenSCENARIO2Parser.Osc_fileContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#preludeStatement.
- def enterPreludeStatement(self, ctx: OpenSCENARIO2Parser.PreludeStatementContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#preludeStatement.
- def exitPreludeStatement(self, ctx: OpenSCENARIO2Parser.PreludeStatementContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#importStatement.
- def enterImportStatement(self, ctx: OpenSCENARIO2Parser.ImportStatementContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#importStatement.
- def exitImportStatement(self, ctx: OpenSCENARIO2Parser.ImportStatementContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#importReference.
- def enterImportReference(self, ctx: OpenSCENARIO2Parser.ImportReferenceContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#importReference.
- def exitImportReference(self, ctx: OpenSCENARIO2Parser.ImportReferenceContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structuredIdentifier.
- def enterStructuredIdentifier(
- self, ctx: OpenSCENARIO2Parser.StructuredIdentifierContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structuredIdentifier.
- def exitStructuredIdentifier(
- self, ctx: OpenSCENARIO2Parser.StructuredIdentifierContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#oscDeclaration.
- def enterOscDeclaration(self, ctx: OpenSCENARIO2Parser.OscDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#oscDeclaration.
- def exitOscDeclaration(self, ctx: OpenSCENARIO2Parser.OscDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#physicalTypeDeclaration.
- def enterPhysicalTypeDeclaration(
- self, ctx: OpenSCENARIO2Parser.PhysicalTypeDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#physicalTypeDeclaration.
- def exitPhysicalTypeDeclaration(
- self, ctx: OpenSCENARIO2Parser.PhysicalTypeDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#physicalTypeName.
- def enterPhysicalTypeName(self, ctx: OpenSCENARIO2Parser.PhysicalTypeNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#physicalTypeName.
- def exitPhysicalTypeName(self, ctx: OpenSCENARIO2Parser.PhysicalTypeNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#baseUnitSpecifier.
- def enterBaseUnitSpecifier(self, ctx: OpenSCENARIO2Parser.BaseUnitSpecifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#baseUnitSpecifier.
- def exitBaseUnitSpecifier(self, ctx: OpenSCENARIO2Parser.BaseUnitSpecifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIBaseUnitSpecifier.
- def enterSIBaseUnitSpecifier(
- self, ctx: OpenSCENARIO2Parser.SIBaseUnitSpecifierContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIBaseUnitSpecifier.
- def exitSIBaseUnitSpecifier(
- self, ctx: OpenSCENARIO2Parser.SIBaseUnitSpecifierContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#unitDeclaration.
- def enterUnitDeclaration(self, ctx: OpenSCENARIO2Parser.UnitDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#unitDeclaration.
- def exitUnitDeclaration(self, ctx: OpenSCENARIO2Parser.UnitDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#unitSpecifier.
- def enterUnitSpecifier(self, ctx: OpenSCENARIO2Parser.UnitSpecifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#unitSpecifier.
- def exitUnitSpecifier(self, ctx: OpenSCENARIO2Parser.UnitSpecifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIUnitSpecifier.
- def enterSIUnitSpecifier(self, ctx: OpenSCENARIO2Parser.SIUnitSpecifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIUnitSpecifier.
- def exitSIUnitSpecifier(self, ctx: OpenSCENARIO2Parser.SIUnitSpecifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIBaseExponentList.
- def enterSIBaseExponentList(
- self, ctx: OpenSCENARIO2Parser.SIBaseExponentListContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIBaseExponentList.
- def exitSIBaseExponentList(
- self, ctx: OpenSCENARIO2Parser.SIBaseExponentListContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIBaseExponent.
- def enterSIBaseExponent(self, ctx: OpenSCENARIO2Parser.SIBaseExponentContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIBaseExponent.
- def exitSIBaseExponent(self, ctx: OpenSCENARIO2Parser.SIBaseExponentContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIFactor.
- def enterSIFactor(self, ctx: OpenSCENARIO2Parser.SIFactorContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIFactor.
- def exitSIFactor(self, ctx: OpenSCENARIO2Parser.SIFactorContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sIOffset.
- def enterSIOffset(self, ctx: OpenSCENARIO2Parser.SIOffsetContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sIOffset.
- def exitSIOffset(self, ctx: OpenSCENARIO2Parser.SIOffsetContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumDeclaration.
- def enterEnumDeclaration(self, ctx: OpenSCENARIO2Parser.EnumDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumDeclaration.
- def exitEnumDeclaration(self, ctx: OpenSCENARIO2Parser.EnumDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumMemberDecl.
- def enterEnumMemberDecl(self, ctx: OpenSCENARIO2Parser.EnumMemberDeclContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumMemberDecl.
- def exitEnumMemberDecl(self, ctx: OpenSCENARIO2Parser.EnumMemberDeclContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumMemberValue.
- def enterEnumMemberValue(self, ctx: OpenSCENARIO2Parser.EnumMemberValueContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumMemberValue.
- def exitEnumMemberValue(self, ctx: OpenSCENARIO2Parser.EnumMemberValueContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumName.
- def enterEnumName(self, ctx: OpenSCENARIO2Parser.EnumNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumName.
- def exitEnumName(self, ctx: OpenSCENARIO2Parser.EnumNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumMemberName.
- def enterEnumMemberName(self, ctx: OpenSCENARIO2Parser.EnumMemberNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumMemberName.
- def exitEnumMemberName(self, ctx: OpenSCENARIO2Parser.EnumMemberNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumValueReference.
- def enterEnumValueReference(
- self, ctx: OpenSCENARIO2Parser.EnumValueReferenceContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumValueReference.
- def exitEnumValueReference(
- self, ctx: OpenSCENARIO2Parser.EnumValueReferenceContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#inheritsCondition.
- def enterInheritsCondition(self, ctx: OpenSCENARIO2Parser.InheritsConditionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#inheritsCondition.
- def exitInheritsCondition(self, ctx: OpenSCENARIO2Parser.InheritsConditionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structDeclaration.
- def enterStructDeclaration(self, ctx: OpenSCENARIO2Parser.StructDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structDeclaration.
- def exitStructDeclaration(self, ctx: OpenSCENARIO2Parser.StructDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structInherts.
- def enterStructInherts(self, ctx: OpenSCENARIO2Parser.StructInhertsContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structInherts.
- def exitStructInherts(self, ctx: OpenSCENARIO2Parser.StructInhertsContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structMemberDecl.
- def enterStructMemberDecl(self, ctx: OpenSCENARIO2Parser.StructMemberDeclContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structMemberDecl.
- def exitStructMemberDecl(self, ctx: OpenSCENARIO2Parser.StructMemberDeclContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldName.
- def enterFieldName(self, ctx: OpenSCENARIO2Parser.FieldNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldName.
- def exitFieldName(self, ctx: OpenSCENARIO2Parser.FieldNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structName.
- def enterStructName(self, ctx: OpenSCENARIO2Parser.StructNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structName.
- def exitStructName(self, ctx: OpenSCENARIO2Parser.StructNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorDeclaration.
- def enterActorDeclaration(self, ctx: OpenSCENARIO2Parser.ActorDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorDeclaration.
- def exitActorDeclaration(self, ctx: OpenSCENARIO2Parser.ActorDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorInherts.
- def enterActorInherts(self, ctx: OpenSCENARIO2Parser.ActorInhertsContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorInherts.
- def exitActorInherts(self, ctx: OpenSCENARIO2Parser.ActorInhertsContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorMemberDecl.
- def enterActorMemberDecl(self, ctx: OpenSCENARIO2Parser.ActorMemberDeclContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorMemberDecl.
- def exitActorMemberDecl(self, ctx: OpenSCENARIO2Parser.ActorMemberDeclContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorName.
- def enterActorName(self, ctx: OpenSCENARIO2Parser.ActorNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorName.
- def exitActorName(self, ctx: OpenSCENARIO2Parser.ActorNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#scenarioDeclaration.
- def enterScenarioDeclaration(
- self, ctx: OpenSCENARIO2Parser.ScenarioDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#scenarioDeclaration.
- def exitScenarioDeclaration(
- self, ctx: OpenSCENARIO2Parser.ScenarioDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#scenarioInherts.
- def enterScenarioInherts(self, ctx: OpenSCENARIO2Parser.ScenarioInhertsContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#scenarioInherts.
- def exitScenarioInherts(self, ctx: OpenSCENARIO2Parser.ScenarioInhertsContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#scenarioMemberDecl.
- def enterScenarioMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ScenarioMemberDeclContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#scenarioMemberDecl.
- def exitScenarioMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ScenarioMemberDeclContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#qualifiedBehaviorName.
- def enterQualifiedBehaviorName(
- self, ctx: OpenSCENARIO2Parser.QualifiedBehaviorNameContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#qualifiedBehaviorName.
- def exitQualifiedBehaviorName(
- self, ctx: OpenSCENARIO2Parser.QualifiedBehaviorNameContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorName.
- def enterBehaviorName(self, ctx: OpenSCENARIO2Parser.BehaviorNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorName.
- def exitBehaviorName(self, ctx: OpenSCENARIO2Parser.BehaviorNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actionDeclaration.
- def enterActionDeclaration(self, ctx: OpenSCENARIO2Parser.ActionDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actionDeclaration.
- def exitActionDeclaration(self, ctx: OpenSCENARIO2Parser.ActionDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actionInherts.
- def enterActionInherts(self, ctx: OpenSCENARIO2Parser.ActionInhertsContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actionInherts.
- def exitActionInherts(self, ctx: OpenSCENARIO2Parser.ActionInhertsContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#modifierDeclaration.
- def enterModifierDeclaration(
- self, ctx: OpenSCENARIO2Parser.ModifierDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#modifierDeclaration.
- def exitModifierDeclaration(
- self, ctx: OpenSCENARIO2Parser.ModifierDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#modifierName.
- def enterModifierName(self, ctx: OpenSCENARIO2Parser.ModifierNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#modifierName.
- def exitModifierName(self, ctx: OpenSCENARIO2Parser.ModifierNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeExtension.
- def enterTypeExtension(self, ctx: OpenSCENARIO2Parser.TypeExtensionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeExtension.
- def exitTypeExtension(self, ctx: OpenSCENARIO2Parser.TypeExtensionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#enumTypeExtension.
- def enterEnumTypeExtension(self, ctx: OpenSCENARIO2Parser.EnumTypeExtensionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#enumTypeExtension.
- def exitEnumTypeExtension(self, ctx: OpenSCENARIO2Parser.EnumTypeExtensionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#structuredTypeExtension.
- def enterStructuredTypeExtension(
- self, ctx: OpenSCENARIO2Parser.StructuredTypeExtensionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#structuredTypeExtension.
- def exitStructuredTypeExtension(
- self, ctx: OpenSCENARIO2Parser.StructuredTypeExtensionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#extendableTypeName.
- def enterExtendableTypeName(
- self, ctx: OpenSCENARIO2Parser.ExtendableTypeNameContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#extendableTypeName.
- def exitExtendableTypeName(
- self, ctx: OpenSCENARIO2Parser.ExtendableTypeNameContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#extensionMemberDecl.
- def enterExtensionMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ExtensionMemberDeclContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#extensionMemberDecl.
- def exitExtensionMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ExtensionMemberDeclContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#globalParameterDeclaration.
- def enterGlobalParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.GlobalParameterDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#globalParameterDeclaration.
- def exitGlobalParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.GlobalParameterDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeDeclarator.
- def enterTypeDeclarator(self, ctx: OpenSCENARIO2Parser.TypeDeclaratorContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeDeclarator.
- def exitTypeDeclarator(self, ctx: OpenSCENARIO2Parser.TypeDeclaratorContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#nonAggregateTypeDeclarator.
- def enterNonAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#nonAggregateTypeDeclarator.
- def exitNonAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#aggregateTypeDeclarator.
- def enterAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.AggregateTypeDeclaratorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#aggregateTypeDeclarator.
- def exitAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.AggregateTypeDeclaratorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#listTypeDeclarator.
- def enterListTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.ListTypeDeclaratorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#listTypeDeclarator.
- def exitListTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.ListTypeDeclaratorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#primitiveType.
- def enterPrimitiveType(self, ctx: OpenSCENARIO2Parser.PrimitiveTypeContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#primitiveType.
- def exitPrimitiveType(self, ctx: OpenSCENARIO2Parser.PrimitiveTypeContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeName.
- def enterTypeName(self, ctx: OpenSCENARIO2Parser.TypeNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeName.
- def exitTypeName(self, ctx: OpenSCENARIO2Parser.TypeNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventDeclaration.
- def enterEventDeclaration(self, ctx: OpenSCENARIO2Parser.EventDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventDeclaration.
- def exitEventDeclaration(self, ctx: OpenSCENARIO2Parser.EventDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventSpecification.
- def enterEventSpecification(
- self, ctx: OpenSCENARIO2Parser.EventSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventSpecification.
- def exitEventSpecification(
- self, ctx: OpenSCENARIO2Parser.EventSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventReference.
- def enterEventReference(self, ctx: OpenSCENARIO2Parser.EventReferenceContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventReference.
- def exitEventReference(self, ctx: OpenSCENARIO2Parser.EventReferenceContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventFieldDecl.
- def enterEventFieldDecl(self, ctx: OpenSCENARIO2Parser.EventFieldDeclContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventFieldDecl.
- def exitEventFieldDecl(self, ctx: OpenSCENARIO2Parser.EventFieldDeclContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventFieldName.
- def enterEventFieldName(self, ctx: OpenSCENARIO2Parser.EventFieldNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventFieldName.
- def exitEventFieldName(self, ctx: OpenSCENARIO2Parser.EventFieldNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventName.
- def enterEventName(self, ctx: OpenSCENARIO2Parser.EventNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventName.
- def exitEventName(self, ctx: OpenSCENARIO2Parser.EventNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventPath.
- def enterEventPath(self, ctx: OpenSCENARIO2Parser.EventPathContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventPath.
- def exitEventPath(self, ctx: OpenSCENARIO2Parser.EventPathContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#eventCondition.
- def enterEventCondition(self, ctx: OpenSCENARIO2Parser.EventConditionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#eventCondition.
- def exitEventCondition(self, ctx: OpenSCENARIO2Parser.EventConditionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#riseExpression.
- def enterRiseExpression(self, ctx: OpenSCENARIO2Parser.RiseExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#riseExpression.
- def exitRiseExpression(self, ctx: OpenSCENARIO2Parser.RiseExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fallExpression.
- def enterFallExpression(self, ctx: OpenSCENARIO2Parser.FallExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fallExpression.
- def exitFallExpression(self, ctx: OpenSCENARIO2Parser.FallExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#elapsedExpression.
- def enterElapsedExpression(self, ctx: OpenSCENARIO2Parser.ElapsedExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#elapsedExpression.
- def exitElapsedExpression(self, ctx: OpenSCENARIO2Parser.ElapsedExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#everyExpression.
- def enterEveryExpression(self, ctx: OpenSCENARIO2Parser.EveryExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#everyExpression.
- def exitEveryExpression(self, ctx: OpenSCENARIO2Parser.EveryExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#boolExpression.
- def enterBoolExpression(self, ctx: OpenSCENARIO2Parser.BoolExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#boolExpression.
- def exitBoolExpression(self, ctx: OpenSCENARIO2Parser.BoolExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#durationExpression.
- def enterDurationExpression(
- self, ctx: OpenSCENARIO2Parser.DurationExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#durationExpression.
- def exitDurationExpression(
- self, ctx: OpenSCENARIO2Parser.DurationExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldDeclaration.
- def enterFieldDeclaration(self, ctx: OpenSCENARIO2Parser.FieldDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldDeclaration.
- def exitFieldDeclaration(self, ctx: OpenSCENARIO2Parser.FieldDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterDeclaration.
- def enterParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterDeclaration.
- def exitParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#variableDeclaration.
- def enterVariableDeclaration(
- self, ctx: OpenSCENARIO2Parser.VariableDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#variableDeclaration.
- def exitVariableDeclaration(
- self, ctx: OpenSCENARIO2Parser.VariableDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sampleExpression.
- def enterSampleExpression(self, ctx: OpenSCENARIO2Parser.SampleExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sampleExpression.
- def exitSampleExpression(self, ctx: OpenSCENARIO2Parser.SampleExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#defaultValue.
- def enterDefaultValue(self, ctx: OpenSCENARIO2Parser.DefaultValueContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#defaultValue.
- def exitDefaultValue(self, ctx: OpenSCENARIO2Parser.DefaultValueContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterWithDeclaration.
- def enterParameterWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterWithDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterWithDeclaration.
- def exitParameterWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterWithDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterWithMember.
- def enterParameterWithMember(
- self, ctx: OpenSCENARIO2Parser.ParameterWithMemberContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterWithMember.
- def exitParameterWithMember(
- self, ctx: OpenSCENARIO2Parser.ParameterWithMemberContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#constraintDeclaration.
- def enterConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.ConstraintDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#constraintDeclaration.
- def exitConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.ConstraintDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#keepConstraintDeclaration.
- def enterKeepConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.KeepConstraintDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#keepConstraintDeclaration.
- def exitKeepConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.KeepConstraintDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#constraintQualifier.
- def enterConstraintQualifier(
- self, ctx: OpenSCENARIO2Parser.ConstraintQualifierContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#constraintQualifier.
- def exitConstraintQualifier(
- self, ctx: OpenSCENARIO2Parser.ConstraintQualifierContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#constraintExpression.
- def enterConstraintExpression(
- self, ctx: OpenSCENARIO2Parser.ConstraintExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#constraintExpression.
- def exitConstraintExpression(
- self, ctx: OpenSCENARIO2Parser.ConstraintExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#removeDefaultDeclaration.
- def enterRemoveDefaultDeclaration(
- self, ctx: OpenSCENARIO2Parser.RemoveDefaultDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#removeDefaultDeclaration.
- def exitRemoveDefaultDeclaration(
- self, ctx: OpenSCENARIO2Parser.RemoveDefaultDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#parameterReference.
- def enterParameterReference(
- self, ctx: OpenSCENARIO2Parser.ParameterReferenceContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#parameterReference.
- def exitParameterReference(
- self, ctx: OpenSCENARIO2Parser.ParameterReferenceContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#modifierInvocation.
- def enterModifierInvocation(
- self, ctx: OpenSCENARIO2Parser.ModifierInvocationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#modifierInvocation.
- def exitModifierInvocation(
- self, ctx: OpenSCENARIO2Parser.ModifierInvocationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorExpression.
- def enterBehaviorExpression(
- self, ctx: OpenSCENARIO2Parser.BehaviorExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorExpression.
- def exitBehaviorExpression(
- self, ctx: OpenSCENARIO2Parser.BehaviorExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorSpecification.
- def enterBehaviorSpecification(
- self, ctx: OpenSCENARIO2Parser.BehaviorSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorSpecification.
- def exitBehaviorSpecification(
- self, ctx: OpenSCENARIO2Parser.BehaviorSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#onDirective.
- def enterOnDirective(self, ctx: OpenSCENARIO2Parser.OnDirectiveContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#onDirective.
- def exitOnDirective(self, ctx: OpenSCENARIO2Parser.OnDirectiveContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#onMember.
- def enterOnMember(self, ctx: OpenSCENARIO2Parser.OnMemberContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#onMember.
- def exitOnMember(self, ctx: OpenSCENARIO2Parser.OnMemberContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#doDirective.
- def enterDoDirective(self, ctx: OpenSCENARIO2Parser.DoDirectiveContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#doDirective.
- def exitDoDirective(self, ctx: OpenSCENARIO2Parser.DoDirectiveContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#doMember.
- def enterDoMember(self, ctx: OpenSCENARIO2Parser.DoMemberContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#doMember.
- def exitDoMember(self, ctx: OpenSCENARIO2Parser.DoMemberContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#composition.
- def enterComposition(self, ctx: OpenSCENARIO2Parser.CompositionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#composition.
- def exitComposition(self, ctx: OpenSCENARIO2Parser.CompositionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#compositionOperator.
- def enterCompositionOperator(
- self, ctx: OpenSCENARIO2Parser.CompositionOperatorContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#compositionOperator.
- def exitCompositionOperator(
- self, ctx: OpenSCENARIO2Parser.CompositionOperatorContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorInvocation.
- def enterBehaviorInvocation(
- self, ctx: OpenSCENARIO2Parser.BehaviorInvocationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorInvocation.
- def exitBehaviorInvocation(
- self, ctx: OpenSCENARIO2Parser.BehaviorInvocationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorWithDeclaration.
- def enterBehaviorWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorWithDeclaration.
- def exitBehaviorWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#behaviorWithMember.
- def enterBehaviorWithMember(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithMemberContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#behaviorWithMember.
- def exitBehaviorWithMember(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithMemberContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#labelName.
- def enterLabelName(self, ctx: OpenSCENARIO2Parser.LabelNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#labelName.
- def exitLabelName(self, ctx: OpenSCENARIO2Parser.LabelNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#actorExpression.
- def enterActorExpression(self, ctx: OpenSCENARIO2Parser.ActorExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#actorExpression.
- def exitActorExpression(self, ctx: OpenSCENARIO2Parser.ActorExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#waitDirective.
- def enterWaitDirective(self, ctx: OpenSCENARIO2Parser.WaitDirectiveContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#waitDirective.
- def exitWaitDirective(self, ctx: OpenSCENARIO2Parser.WaitDirectiveContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#emitDirective.
- def enterEmitDirective(self, ctx: OpenSCENARIO2Parser.EmitDirectiveContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#emitDirective.
- def exitEmitDirective(self, ctx: OpenSCENARIO2Parser.EmitDirectiveContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#callDirective.
- def enterCallDirective(self, ctx: OpenSCENARIO2Parser.CallDirectiveContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#callDirective.
- def exitCallDirective(self, ctx: OpenSCENARIO2Parser.CallDirectiveContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#untilDirective.
- def enterUntilDirective(self, ctx: OpenSCENARIO2Parser.UntilDirectiveContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#untilDirective.
- def exitUntilDirective(self, ctx: OpenSCENARIO2Parser.UntilDirectiveContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodInvocation.
- def enterMethodInvocation(self, ctx: OpenSCENARIO2Parser.MethodInvocationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodInvocation.
- def exitMethodInvocation(self, ctx: OpenSCENARIO2Parser.MethodInvocationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodDeclaration.
- def enterMethodDeclaration(self, ctx: OpenSCENARIO2Parser.MethodDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodDeclaration.
- def exitMethodDeclaration(self, ctx: OpenSCENARIO2Parser.MethodDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#returnType.
- def enterReturnType(self, ctx: OpenSCENARIO2Parser.ReturnTypeContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#returnType.
- def exitReturnType(self, ctx: OpenSCENARIO2Parser.ReturnTypeContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodImplementation.
- def enterMethodImplementation(
- self, ctx: OpenSCENARIO2Parser.MethodImplementationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodImplementation.
- def exitMethodImplementation(
- self, ctx: OpenSCENARIO2Parser.MethodImplementationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodQualifier.
- def enterMethodQualifier(self, ctx: OpenSCENARIO2Parser.MethodQualifierContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodQualifier.
- def exitMethodQualifier(self, ctx: OpenSCENARIO2Parser.MethodQualifierContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#methodName.
- def enterMethodName(self, ctx: OpenSCENARIO2Parser.MethodNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#methodName.
- def exitMethodName(self, ctx: OpenSCENARIO2Parser.MethodNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageDeclaration.
- def enterCoverageDeclaration(
- self, ctx: OpenSCENARIO2Parser.CoverageDeclarationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageDeclaration.
- def exitCoverageDeclaration(
- self, ctx: OpenSCENARIO2Parser.CoverageDeclarationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverDeclaration.
- def enterCoverDeclaration(self, ctx: OpenSCENARIO2Parser.CoverDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverDeclaration.
- def exitCoverDeclaration(self, ctx: OpenSCENARIO2Parser.CoverDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#recordDeclaration.
- def enterRecordDeclaration(self, ctx: OpenSCENARIO2Parser.RecordDeclarationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#recordDeclaration.
- def exitRecordDeclaration(self, ctx: OpenSCENARIO2Parser.RecordDeclarationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageExpression.
- def enterCoverageExpression(
- self, ctx: OpenSCENARIO2Parser.CoverageExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageExpression.
- def exitCoverageExpression(
- self, ctx: OpenSCENARIO2Parser.CoverageExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageUnit.
- def enterCoverageUnit(self, ctx: OpenSCENARIO2Parser.CoverageUnitContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageUnit.
- def exitCoverageUnit(self, ctx: OpenSCENARIO2Parser.CoverageUnitContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageRange.
- def enterCoverageRange(self, ctx: OpenSCENARIO2Parser.CoverageRangeContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageRange.
- def exitCoverageRange(self, ctx: OpenSCENARIO2Parser.CoverageRangeContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageEvery.
- def enterCoverageEvery(self, ctx: OpenSCENARIO2Parser.CoverageEveryContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageEvery.
- def exitCoverageEvery(self, ctx: OpenSCENARIO2Parser.CoverageEveryContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageEvent.
- def enterCoverageEvent(self, ctx: OpenSCENARIO2Parser.CoverageEventContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageEvent.
- def exitCoverageEvent(self, ctx: OpenSCENARIO2Parser.CoverageEventContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#coverageNameArgument.
- def enterCoverageNameArgument(
- self, ctx: OpenSCENARIO2Parser.CoverageNameArgumentContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#coverageNameArgument.
- def exitCoverageNameArgument(
- self, ctx: OpenSCENARIO2Parser.CoverageNameArgumentContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#targetName.
- def enterTargetName(self, ctx: OpenSCENARIO2Parser.TargetNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#targetName.
- def exitTargetName(self, ctx: OpenSCENARIO2Parser.TargetNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#expression.
- def enterExpression(self, ctx: OpenSCENARIO2Parser.ExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#expression.
- def exitExpression(self, ctx: OpenSCENARIO2Parser.ExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#ternaryOpExp.
- def enterTernaryOpExp(self, ctx: OpenSCENARIO2Parser.TernaryOpExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#ternaryOpExp.
- def exitTernaryOpExp(self, ctx: OpenSCENARIO2Parser.TernaryOpExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#implication.
- def enterImplication(self, ctx: OpenSCENARIO2Parser.ImplicationContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#implication.
- def exitImplication(self, ctx: OpenSCENARIO2Parser.ImplicationContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#disjunction.
- def enterDisjunction(self, ctx: OpenSCENARIO2Parser.DisjunctionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#disjunction.
- def exitDisjunction(self, ctx: OpenSCENARIO2Parser.DisjunctionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#conjunction.
- def enterConjunction(self, ctx: OpenSCENARIO2Parser.ConjunctionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#conjunction.
- def exitConjunction(self, ctx: OpenSCENARIO2Parser.ConjunctionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#inversion.
- def enterInversion(self, ctx: OpenSCENARIO2Parser.InversionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#inversion.
- def exitInversion(self, ctx: OpenSCENARIO2Parser.InversionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#relationExp.
- def enterRelationExp(self, ctx: OpenSCENARIO2Parser.RelationExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#relationExp.
- def exitRelationExp(self, ctx: OpenSCENARIO2Parser.RelationExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#sumExp.
- def enterSumExp(self, ctx: OpenSCENARIO2Parser.SumExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#sumExp.
- def exitSumExp(self, ctx: OpenSCENARIO2Parser.SumExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#relationalOp.
- def enterRelationalOp(self, ctx: OpenSCENARIO2Parser.RelationalOpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#relationalOp.
- def exitRelationalOp(self, ctx: OpenSCENARIO2Parser.RelationalOpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#termExp.
- def enterTermExp(self, ctx: OpenSCENARIO2Parser.TermExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#termExp.
- def exitTermExp(self, ctx: OpenSCENARIO2Parser.TermExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#additiveExp.
- def enterAdditiveExp(self, ctx: OpenSCENARIO2Parser.AdditiveExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#additiveExp.
- def exitAdditiveExp(self, ctx: OpenSCENARIO2Parser.AdditiveExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#additiveOp.
- def enterAdditiveOp(self, ctx: OpenSCENARIO2Parser.AdditiveOpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#additiveOp.
- def exitAdditiveOp(self, ctx: OpenSCENARIO2Parser.AdditiveOpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#multiplicativeExp.
- def enterMultiplicativeExp(self, ctx: OpenSCENARIO2Parser.MultiplicativeExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#multiplicativeExp.
- def exitMultiplicativeExp(self, ctx: OpenSCENARIO2Parser.MultiplicativeExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#factorExp.
- def enterFactorExp(self, ctx: OpenSCENARIO2Parser.FactorExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#factorExp.
- def exitFactorExp(self, ctx: OpenSCENARIO2Parser.FactorExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#multiplicativeOp.
- def enterMultiplicativeOp(self, ctx: OpenSCENARIO2Parser.MultiplicativeOpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#multiplicativeOp.
- def exitMultiplicativeOp(self, ctx: OpenSCENARIO2Parser.MultiplicativeOpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#factor.
- def enterFactor(self, ctx: OpenSCENARIO2Parser.FactorContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#factor.
- def exitFactor(self, ctx: OpenSCENARIO2Parser.FactorContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#primaryExpression.
- def enterPrimaryExpression(self, ctx: OpenSCENARIO2Parser.PrimaryExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#primaryExpression.
- def exitPrimaryExpression(self, ctx: OpenSCENARIO2Parser.PrimaryExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#castExpression.
- def enterCastExpression(self, ctx: OpenSCENARIO2Parser.CastExpressionContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#castExpression.
- def exitCastExpression(self, ctx: OpenSCENARIO2Parser.CastExpressionContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#functionApplicationExpression.
- def enterFunctionApplicationExpression(
- self, ctx: OpenSCENARIO2Parser.FunctionApplicationExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#functionApplicationExpression.
- def exitFunctionApplicationExpression(
- self, ctx: OpenSCENARIO2Parser.FunctionApplicationExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldAccessExpression.
- def enterFieldAccessExpression(
- self, ctx: OpenSCENARIO2Parser.FieldAccessExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldAccessExpression.
- def exitFieldAccessExpression(
- self, ctx: OpenSCENARIO2Parser.FieldAccessExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#elementAccessExpression.
- def enterElementAccessExpression(
- self, ctx: OpenSCENARIO2Parser.ElementAccessExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#elementAccessExpression.
- def exitElementAccessExpression(
- self, ctx: OpenSCENARIO2Parser.ElementAccessExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#typeTestExpression.
- def enterTypeTestExpression(
- self, ctx: OpenSCENARIO2Parser.TypeTestExpressionContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#typeTestExpression.
- def exitTypeTestExpression(
- self, ctx: OpenSCENARIO2Parser.TypeTestExpressionContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#fieldAccess.
- def enterFieldAccess(self, ctx: OpenSCENARIO2Parser.FieldAccessContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#fieldAccess.
- def exitFieldAccess(self, ctx: OpenSCENARIO2Parser.FieldAccessContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#primaryExp.
- def enterPrimaryExp(self, ctx: OpenSCENARIO2Parser.PrimaryExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#primaryExp.
- def exitPrimaryExp(self, ctx: OpenSCENARIO2Parser.PrimaryExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#valueExp.
- def enterValueExp(self, ctx: OpenSCENARIO2Parser.ValueExpContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#valueExp.
- def exitValueExp(self, ctx: OpenSCENARIO2Parser.ValueExpContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#listConstructor.
- def enterListConstructor(self, ctx: OpenSCENARIO2Parser.ListConstructorContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#listConstructor.
- def exitListConstructor(self, ctx: OpenSCENARIO2Parser.ListConstructorContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#rangeConstructor.
- def enterRangeConstructor(self, ctx: OpenSCENARIO2Parser.RangeConstructorContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#rangeConstructor.
- def exitRangeConstructor(self, ctx: OpenSCENARIO2Parser.RangeConstructorContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#identifierReference.
- def enterIdentifierReference(
- self, ctx: OpenSCENARIO2Parser.IdentifierReferenceContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#identifierReference.
- def exitIdentifierReference(
- self, ctx: OpenSCENARIO2Parser.IdentifierReferenceContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentListSpecification.
- def enterArgumentListSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentListSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentListSpecification.
- def exitArgumentListSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentListSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentSpecification.
- def enterArgumentSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentSpecificationContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentSpecification.
- def exitArgumentSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentSpecificationContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentName.
- def enterArgumentName(self, ctx: OpenSCENARIO2Parser.ArgumentNameContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentName.
- def exitArgumentName(self, ctx: OpenSCENARIO2Parser.ArgumentNameContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#argumentList.
- def enterArgumentList(self, ctx: OpenSCENARIO2Parser.ArgumentListContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#argumentList.
- def exitArgumentList(self, ctx: OpenSCENARIO2Parser.ArgumentListContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#positionalArgument.
- def enterPositionalArgument(
- self, ctx: OpenSCENARIO2Parser.PositionalArgumentContext
- ):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#positionalArgument.
- def exitPositionalArgument(
- self, ctx: OpenSCENARIO2Parser.PositionalArgumentContext
- ):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#namedArgument.
- def enterNamedArgument(self, ctx: OpenSCENARIO2Parser.NamedArgumentContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#namedArgument.
- def exitNamedArgument(self, ctx: OpenSCENARIO2Parser.NamedArgumentContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#physicalLiteral.
- def enterPhysicalLiteral(self, ctx: OpenSCENARIO2Parser.PhysicalLiteralContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#physicalLiteral.
- def exitPhysicalLiteral(self, ctx: OpenSCENARIO2Parser.PhysicalLiteralContext):
- pass
-
- # Enter a parse tree produced by OpenSCENARIO2Parser#integerLiteral.
- def enterIntegerLiteral(self, ctx: OpenSCENARIO2Parser.IntegerLiteralContext):
- pass
-
- # Exit a parse tree produced by OpenSCENARIO2Parser#integerLiteral.
- def exitIntegerLiteral(self, ctx: OpenSCENARIO2Parser.IntegerLiteralContext):
- pass
-
-
-del OpenSCENARIO2Parser
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2Parser.py b/srunner/osc2/osc2_parser/OpenSCENARIO2Parser.py
deleted file mode 100644
index 4391103..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2Parser.py
+++ /dev/null
@@ -1,22550 +0,0 @@
-# Generated from .\OpenSCENARIO2.g4 by ANTLR 4.10.1
-# encoding: utf-8
-import sys
-from io import StringIO
-
-from antlr4 import *
-
-if sys.version_info[1] > 5:
- from typing import TextIO
-else:
- from typing.io import TextIO
-
-
-def serializedATN():
- return [
- 4,
- 1,
- 95,
- 1318,
- 2,
- 0,
- 7,
- 0,
- 2,
- 1,
- 7,
- 1,
- 2,
- 2,
- 7,
- 2,
- 2,
- 3,
- 7,
- 3,
- 2,
- 4,
- 7,
- 4,
- 2,
- 5,
- 7,
- 5,
- 2,
- 6,
- 7,
- 6,
- 2,
- 7,
- 7,
- 7,
- 2,
- 8,
- 7,
- 8,
- 2,
- 9,
- 7,
- 9,
- 2,
- 10,
- 7,
- 10,
- 2,
- 11,
- 7,
- 11,
- 2,
- 12,
- 7,
- 12,
- 2,
- 13,
- 7,
- 13,
- 2,
- 14,
- 7,
- 14,
- 2,
- 15,
- 7,
- 15,
- 2,
- 16,
- 7,
- 16,
- 2,
- 17,
- 7,
- 17,
- 2,
- 18,
- 7,
- 18,
- 2,
- 19,
- 7,
- 19,
- 2,
- 20,
- 7,
- 20,
- 2,
- 21,
- 7,
- 21,
- 2,
- 22,
- 7,
- 22,
- 2,
- 23,
- 7,
- 23,
- 2,
- 24,
- 7,
- 24,
- 2,
- 25,
- 7,
- 25,
- 2,
- 26,
- 7,
- 26,
- 2,
- 27,
- 7,
- 27,
- 2,
- 28,
- 7,
- 28,
- 2,
- 29,
- 7,
- 29,
- 2,
- 30,
- 7,
- 30,
- 2,
- 31,
- 7,
- 31,
- 2,
- 32,
- 7,
- 32,
- 2,
- 33,
- 7,
- 33,
- 2,
- 34,
- 7,
- 34,
- 2,
- 35,
- 7,
- 35,
- 2,
- 36,
- 7,
- 36,
- 2,
- 37,
- 7,
- 37,
- 2,
- 38,
- 7,
- 38,
- 2,
- 39,
- 7,
- 39,
- 2,
- 40,
- 7,
- 40,
- 2,
- 41,
- 7,
- 41,
- 2,
- 42,
- 7,
- 42,
- 2,
- 43,
- 7,
- 43,
- 2,
- 44,
- 7,
- 44,
- 2,
- 45,
- 7,
- 45,
- 2,
- 46,
- 7,
- 46,
- 2,
- 47,
- 7,
- 47,
- 2,
- 48,
- 7,
- 48,
- 2,
- 49,
- 7,
- 49,
- 2,
- 50,
- 7,
- 50,
- 2,
- 51,
- 7,
- 51,
- 2,
- 52,
- 7,
- 52,
- 2,
- 53,
- 7,
- 53,
- 2,
- 54,
- 7,
- 54,
- 2,
- 55,
- 7,
- 55,
- 2,
- 56,
- 7,
- 56,
- 2,
- 57,
- 7,
- 57,
- 2,
- 58,
- 7,
- 58,
- 2,
- 59,
- 7,
- 59,
- 2,
- 60,
- 7,
- 60,
- 2,
- 61,
- 7,
- 61,
- 2,
- 62,
- 7,
- 62,
- 2,
- 63,
- 7,
- 63,
- 2,
- 64,
- 7,
- 64,
- 2,
- 65,
- 7,
- 65,
- 2,
- 66,
- 7,
- 66,
- 2,
- 67,
- 7,
- 67,
- 2,
- 68,
- 7,
- 68,
- 2,
- 69,
- 7,
- 69,
- 2,
- 70,
- 7,
- 70,
- 2,
- 71,
- 7,
- 71,
- 2,
- 72,
- 7,
- 72,
- 2,
- 73,
- 7,
- 73,
- 2,
- 74,
- 7,
- 74,
- 2,
- 75,
- 7,
- 75,
- 2,
- 76,
- 7,
- 76,
- 2,
- 77,
- 7,
- 77,
- 2,
- 78,
- 7,
- 78,
- 2,
- 79,
- 7,
- 79,
- 2,
- 80,
- 7,
- 80,
- 2,
- 81,
- 7,
- 81,
- 2,
- 82,
- 7,
- 82,
- 2,
- 83,
- 7,
- 83,
- 2,
- 84,
- 7,
- 84,
- 2,
- 85,
- 7,
- 85,
- 2,
- 86,
- 7,
- 86,
- 2,
- 87,
- 7,
- 87,
- 2,
- 88,
- 7,
- 88,
- 2,
- 89,
- 7,
- 89,
- 2,
- 90,
- 7,
- 90,
- 2,
- 91,
- 7,
- 91,
- 2,
- 92,
- 7,
- 92,
- 2,
- 93,
- 7,
- 93,
- 2,
- 94,
- 7,
- 94,
- 2,
- 95,
- 7,
- 95,
- 2,
- 96,
- 7,
- 96,
- 2,
- 97,
- 7,
- 97,
- 2,
- 98,
- 7,
- 98,
- 2,
- 99,
- 7,
- 99,
- 2,
- 100,
- 7,
- 100,
- 2,
- 101,
- 7,
- 101,
- 2,
- 102,
- 7,
- 102,
- 2,
- 103,
- 7,
- 103,
- 2,
- 104,
- 7,
- 104,
- 2,
- 105,
- 7,
- 105,
- 2,
- 106,
- 7,
- 106,
- 2,
- 107,
- 7,
- 107,
- 2,
- 108,
- 7,
- 108,
- 2,
- 109,
- 7,
- 109,
- 2,
- 110,
- 7,
- 110,
- 2,
- 111,
- 7,
- 111,
- 2,
- 112,
- 7,
- 112,
- 2,
- 113,
- 7,
- 113,
- 2,
- 114,
- 7,
- 114,
- 2,
- 115,
- 7,
- 115,
- 2,
- 116,
- 7,
- 116,
- 2,
- 117,
- 7,
- 117,
- 2,
- 118,
- 7,
- 118,
- 2,
- 119,
- 7,
- 119,
- 2,
- 120,
- 7,
- 120,
- 2,
- 121,
- 7,
- 121,
- 2,
- 122,
- 7,
- 122,
- 2,
- 123,
- 7,
- 123,
- 2,
- 124,
- 7,
- 124,
- 2,
- 125,
- 7,
- 125,
- 2,
- 126,
- 7,
- 126,
- 2,
- 127,
- 7,
- 127,
- 2,
- 128,
- 7,
- 128,
- 2,
- 129,
- 7,
- 129,
- 2,
- 130,
- 7,
- 130,
- 2,
- 131,
- 7,
- 131,
- 2,
- 132,
- 7,
- 132,
- 2,
- 133,
- 7,
- 133,
- 2,
- 134,
- 7,
- 134,
- 2,
- 135,
- 7,
- 135,
- 2,
- 136,
- 7,
- 136,
- 2,
- 137,
- 7,
- 137,
- 1,
- 0,
- 5,
- 0,
- 278,
- 8,
- 0,
- 10,
- 0,
- 12,
- 0,
- 281,
- 9,
- 0,
- 1,
- 0,
- 5,
- 0,
- 284,
- 8,
- 0,
- 10,
- 0,
- 12,
- 0,
- 287,
- 9,
- 0,
- 1,
- 0,
- 1,
- 0,
- 1,
- 1,
- 1,
- 1,
- 1,
- 2,
- 1,
- 2,
- 1,
- 2,
- 1,
- 2,
- 1,
- 2,
- 3,
- 2,
- 298,
- 8,
- 2,
- 1,
- 3,
- 1,
- 3,
- 3,
- 3,
- 302,
- 8,
- 3,
- 1,
- 4,
- 1,
- 4,
- 1,
- 4,
- 1,
- 4,
- 1,
- 4,
- 1,
- 4,
- 5,
- 4,
- 310,
- 8,
- 4,
- 10,
- 4,
- 12,
- 4,
- 313,
- 9,
- 4,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 1,
- 5,
- 3,
- 5,
- 326,
- 8,
- 5,
- 1,
- 6,
- 1,
- 6,
- 1,
- 6,
- 1,
- 6,
- 1,
- 6,
- 1,
- 6,
- 1,
- 7,
- 1,
- 7,
- 1,
- 8,
- 1,
- 8,
- 1,
- 9,
- 1,
- 9,
- 1,
- 9,
- 1,
- 9,
- 1,
- 9,
- 1,
- 10,
- 1,
- 10,
- 1,
- 10,
- 1,
- 10,
- 1,
- 10,
- 1,
- 10,
- 1,
- 10,
- 1,
- 10,
- 1,
- 11,
- 1,
- 11,
- 1,
- 12,
- 1,
- 12,
- 1,
- 12,
- 1,
- 12,
- 1,
- 12,
- 3,
- 12,
- 358,
- 8,
- 12,
- 1,
- 12,
- 1,
- 12,
- 3,
- 12,
- 362,
- 8,
- 12,
- 1,
- 12,
- 1,
- 12,
- 1,
- 13,
- 1,
- 13,
- 1,
- 13,
- 5,
- 13,
- 369,
- 8,
- 13,
- 10,
- 13,
- 12,
- 13,
- 372,
- 9,
- 13,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 14,
- 1,
- 15,
- 1,
- 15,
- 1,
- 15,
- 1,
- 15,
- 3,
- 15,
- 383,
- 8,
- 15,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 1,
- 16,
- 3,
- 16,
- 389,
- 8,
- 16,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 5,
- 17,
- 398,
- 8,
- 17,
- 10,
- 17,
- 12,
- 17,
- 401,
- 9,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 17,
- 1,
- 18,
- 1,
- 18,
- 1,
- 18,
- 3,
- 18,
- 409,
- 8,
- 18,
- 1,
- 19,
- 1,
- 19,
- 1,
- 20,
- 1,
- 20,
- 1,
- 21,
- 1,
- 21,
- 1,
- 22,
- 1,
- 22,
- 1,
- 22,
- 1,
- 22,
- 1,
- 23,
- 1,
- 23,
- 1,
- 23,
- 1,
- 23,
- 1,
- 23,
- 3,
- 23,
- 426,
- 8,
- 23,
- 1,
- 23,
- 1,
- 23,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 3,
- 24,
- 433,
- 8,
- 24,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 4,
- 24,
- 439,
- 8,
- 24,
- 11,
- 24,
- 12,
- 24,
- 440,
- 1,
- 24,
- 1,
- 24,
- 1,
- 24,
- 3,
- 24,
- 446,
- 8,
- 24,
- 1,
- 25,
- 1,
- 25,
- 1,
- 25,
- 3,
- 25,
- 451,
- 8,
- 25,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 1,
- 26,
- 3,
- 26,
- 458,
- 8,
- 26,
- 1,
- 27,
- 1,
- 27,
- 1,
- 28,
- 1,
- 28,
- 1,
- 29,
- 1,
- 29,
- 1,
- 29,
- 3,
- 29,
- 467,
- 8,
- 29,
- 1,
- 29,
- 1,
- 29,
- 1,
- 29,
- 1,
- 29,
- 4,
- 29,
- 473,
- 8,
- 29,
- 11,
- 29,
- 12,
- 29,
- 474,
- 1,
- 29,
- 1,
- 29,
- 1,
- 29,
- 3,
- 29,
- 480,
- 8,
- 29,
- 1,
- 30,
- 1,
- 30,
- 1,
- 30,
- 3,
- 30,
- 485,
- 8,
- 30,
- 1,
- 31,
- 1,
- 31,
- 1,
- 31,
- 1,
- 31,
- 1,
- 31,
- 3,
- 31,
- 492,
- 8,
- 31,
- 1,
- 32,
- 1,
- 32,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 3,
- 33,
- 499,
- 8,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 4,
- 33,
- 506,
- 8,
- 33,
- 11,
- 33,
- 12,
- 33,
- 507,
- 1,
- 33,
- 1,
- 33,
- 1,
- 33,
- 3,
- 33,
- 513,
- 8,
- 33,
- 1,
- 34,
- 1,
- 34,
- 1,
- 34,
- 3,
- 34,
- 518,
- 8,
- 34,
- 1,
- 35,
- 1,
- 35,
- 1,
- 35,
- 1,
- 35,
- 1,
- 35,
- 1,
- 35,
- 3,
- 35,
- 526,
- 8,
- 35,
- 1,
- 36,
- 1,
- 36,
- 1,
- 36,
- 3,
- 36,
- 531,
- 8,
- 36,
- 1,
- 36,
- 1,
- 36,
- 1,
- 37,
- 1,
- 37,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 3,
- 38,
- 540,
- 8,
- 38,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 4,
- 38,
- 547,
- 8,
- 38,
- 11,
- 38,
- 12,
- 38,
- 548,
- 1,
- 38,
- 1,
- 38,
- 1,
- 38,
- 3,
- 38,
- 554,
- 8,
- 38,
- 1,
- 39,
- 1,
- 39,
- 1,
- 39,
- 3,
- 39,
- 559,
- 8,
- 39,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 3,
- 40,
- 565,
- 8,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 3,
- 40,
- 570,
- 8,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 4,
- 40,
- 576,
- 8,
- 40,
- 11,
- 40,
- 12,
- 40,
- 577,
- 1,
- 40,
- 1,
- 40,
- 1,
- 40,
- 3,
- 40,
- 583,
- 8,
- 40,
- 1,
- 41,
- 1,
- 41,
- 1,
- 42,
- 1,
- 42,
- 3,
- 42,
- 589,
- 8,
- 42,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 5,
- 43,
- 598,
- 8,
- 43,
- 10,
- 43,
- 12,
- 43,
- 601,
- 9,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 43,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 1,
- 44,
- 4,
- 44,
- 612,
- 8,
- 44,
- 11,
- 44,
- 12,
- 44,
- 613,
- 1,
- 44,
- 1,
- 44,
- 1,
- 45,
- 1,
- 45,
- 3,
- 45,
- 620,
- 8,
- 45,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 1,
- 46,
- 3,
- 46,
- 626,
- 8,
- 46,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 5,
- 47,
- 632,
- 8,
- 47,
- 10,
- 47,
- 12,
- 47,
- 635,
- 9,
- 47,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 1,
- 47,
- 3,
- 47,
- 641,
- 8,
- 47,
- 1,
- 47,
- 1,
- 47,
- 3,
- 47,
- 645,
- 8,
- 47,
- 1,
- 48,
- 1,
- 48,
- 3,
- 48,
- 649,
- 8,
- 48,
- 1,
- 49,
- 1,
- 49,
- 1,
- 49,
- 3,
- 49,
- 654,
- 8,
- 49,
- 1,
- 50,
- 1,
- 50,
- 1,
- 51,
- 1,
- 51,
- 1,
- 51,
- 1,
- 51,
- 1,
- 52,
- 1,
- 52,
- 1,
- 53,
- 1,
- 53,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 54,
- 3,
- 54,
- 672,
- 8,
- 54,
- 1,
- 54,
- 1,
- 54,
- 3,
- 54,
- 676,
- 8,
- 54,
- 1,
- 54,
- 1,
- 54,
- 1,
- 55,
- 1,
- 55,
- 3,
- 55,
- 682,
- 8,
- 55,
- 1,
- 55,
- 1,
- 55,
- 3,
- 55,
- 686,
- 8,
- 55,
- 1,
- 55,
- 3,
- 55,
- 689,
- 8,
- 55,
- 1,
- 56,
- 1,
- 56,
- 1,
- 56,
- 1,
- 57,
- 1,
- 57,
- 1,
- 57,
- 1,
- 58,
- 1,
- 58,
- 1,
- 59,
- 1,
- 59,
- 1,
- 60,
- 1,
- 60,
- 1,
- 60,
- 3,
- 60,
- 704,
- 8,
- 60,
- 1,
- 60,
- 1,
- 60,
- 1,
- 61,
- 1,
- 61,
- 1,
- 61,
- 1,
- 61,
- 1,
- 61,
- 3,
- 61,
- 713,
- 8,
- 61,
- 1,
- 62,
- 1,
- 62,
- 1,
- 62,
- 1,
- 62,
- 1,
- 62,
- 1,
- 63,
- 1,
- 63,
- 1,
- 63,
- 1,
- 63,
- 1,
- 63,
- 1,
- 64,
- 1,
- 64,
- 1,
- 64,
- 1,
- 64,
- 1,
- 64,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 65,
- 3,
- 65,
- 738,
- 8,
- 65,
- 1,
- 65,
- 1,
- 65,
- 1,
- 66,
- 1,
- 66,
- 1,
- 67,
- 1,
- 67,
- 1,
- 68,
- 1,
- 68,
- 3,
- 68,
- 748,
- 8,
- 68,
- 1,
- 69,
- 1,
- 69,
- 1,
- 69,
- 5,
- 69,
- 753,
- 8,
- 69,
- 10,
- 69,
- 12,
- 69,
- 756,
- 9,
- 69,
- 1,
- 69,
- 1,
- 69,
- 1,
- 69,
- 1,
- 69,
- 3,
- 69,
- 762,
- 8,
- 69,
- 1,
- 69,
- 1,
- 69,
- 3,
- 69,
- 766,
- 8,
- 69,
- 1,
- 70,
- 1,
- 70,
- 1,
- 70,
- 1,
- 70,
- 5,
- 70,
- 772,
- 8,
- 70,
- 10,
- 70,
- 12,
- 70,
- 775,
- 9,
- 70,
- 1,
- 70,
- 1,
- 70,
- 1,
- 70,
- 1,
- 70,
- 1,
- 70,
- 3,
- 70,
- 782,
- 8,
- 70,
- 3,
- 70,
- 784,
- 8,
- 70,
- 1,
- 70,
- 1,
- 70,
- 1,
- 71,
- 1,
- 71,
- 1,
- 71,
- 1,
- 71,
- 1,
- 71,
- 1,
- 71,
- 1,
- 71,
- 3,
- 71,
- 795,
- 8,
- 71,
- 1,
- 71,
- 1,
- 71,
- 1,
- 72,
- 1,
- 72,
- 1,
- 73,
- 1,
- 73,
- 1,
- 73,
- 1,
- 73,
- 1,
- 73,
- 4,
- 73,
- 806,
- 8,
- 73,
- 11,
- 73,
- 12,
- 73,
- 807,
- 1,
- 73,
- 1,
- 73,
- 1,
- 74,
- 1,
- 74,
- 3,
- 74,
- 814,
- 8,
- 74,
- 1,
- 75,
- 1,
- 75,
- 3,
- 75,
- 818,
- 8,
- 75,
- 1,
- 76,
- 1,
- 76,
- 1,
- 76,
- 3,
- 76,
- 823,
- 8,
- 76,
- 1,
- 76,
- 1,
- 76,
- 1,
- 76,
- 1,
- 76,
- 1,
- 77,
- 1,
- 77,
- 1,
- 78,
- 1,
- 78,
- 1,
- 79,
- 1,
- 79,
- 1,
- 79,
- 1,
- 79,
- 1,
- 79,
- 1,
- 79,
- 1,
- 80,
- 1,
- 80,
- 3,
- 80,
- 841,
- 8,
- 80,
- 1,
- 81,
- 1,
- 81,
- 3,
- 81,
- 845,
- 8,
- 81,
- 1,
- 81,
- 1,
- 81,
- 3,
- 81,
- 849,
- 8,
- 81,
- 1,
- 81,
- 1,
- 81,
- 1,
- 81,
- 3,
- 81,
- 854,
- 8,
- 81,
- 1,
- 81,
- 1,
- 81,
- 1,
- 81,
- 1,
- 82,
- 1,
- 82,
- 1,
- 82,
- 1,
- 82,
- 1,
- 82,
- 1,
- 83,
- 1,
- 83,
- 3,
- 83,
- 866,
- 8,
- 83,
- 1,
- 84,
- 1,
- 84,
- 1,
- 84,
- 1,
- 84,
- 1,
- 84,
- 1,
- 84,
- 4,
- 84,
- 874,
- 8,
- 84,
- 11,
- 84,
- 12,
- 84,
- 875,
- 1,
- 84,
- 1,
- 84,
- 1,
- 85,
- 1,
- 85,
- 3,
- 85,
- 882,
- 8,
- 85,
- 1,
- 86,
- 1,
- 86,
- 1,
- 86,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 3,
- 87,
- 890,
- 8,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 1,
- 87,
- 3,
- 87,
- 897,
- 8,
- 87,
- 1,
- 88,
- 1,
- 88,
- 1,
- 88,
- 3,
- 88,
- 902,
- 8,
- 88,
- 1,
- 88,
- 3,
- 88,
- 905,
- 8,
- 88,
- 1,
- 88,
- 1,
- 88,
- 1,
- 88,
- 1,
- 88,
- 4,
- 88,
- 911,
- 8,
- 88,
- 11,
- 88,
- 12,
- 88,
- 912,
- 1,
- 88,
- 1,
- 88,
- 3,
- 88,
- 917,
- 8,
- 88,
- 1,
- 89,
- 1,
- 89,
- 1,
- 90,
- 1,
- 90,
- 1,
- 90,
- 3,
- 90,
- 924,
- 8,
- 90,
- 1,
- 90,
- 1,
- 90,
- 1,
- 90,
- 3,
- 90,
- 929,
- 8,
- 90,
- 1,
- 90,
- 1,
- 90,
- 1,
- 90,
- 3,
- 90,
- 934,
- 8,
- 90,
- 1,
- 91,
- 1,
- 91,
- 1,
- 91,
- 1,
- 91,
- 1,
- 91,
- 4,
- 91,
- 941,
- 8,
- 91,
- 11,
- 91,
- 12,
- 91,
- 942,
- 1,
- 91,
- 1,
- 91,
- 1,
- 92,
- 1,
- 92,
- 1,
- 92,
- 3,
- 92,
- 950,
- 8,
- 92,
- 1,
- 93,
- 1,
- 93,
- 1,
- 94,
- 1,
- 94,
- 1,
- 95,
- 1,
- 95,
- 1,
- 95,
- 1,
- 95,
- 1,
- 96,
- 1,
- 96,
- 1,
- 96,
- 1,
- 96,
- 1,
- 96,
- 1,
- 96,
- 3,
- 96,
- 966,
- 8,
- 96,
- 1,
- 96,
- 1,
- 96,
- 1,
- 97,
- 1,
- 97,
- 1,
- 97,
- 1,
- 97,
- 1,
- 98,
- 1,
- 98,
- 1,
- 98,
- 1,
- 98,
- 1,
- 99,
- 1,
- 99,
- 1,
- 99,
- 3,
- 99,
- 981,
- 8,
- 99,
- 1,
- 99,
- 1,
- 99,
- 1,
- 100,
- 1,
- 100,
- 1,
- 100,
- 1,
- 100,
- 3,
- 100,
- 989,
- 8,
- 100,
- 1,
- 100,
- 1,
- 100,
- 1,
- 100,
- 3,
- 100,
- 994,
- 8,
- 100,
- 1,
- 100,
- 1,
- 100,
- 1,
- 100,
- 1,
- 101,
- 1,
- 101,
- 1,
- 102,
- 1,
- 102,
- 3,
- 102,
- 1003,
- 8,
- 102,
- 1,
- 102,
- 1,
- 102,
- 1,
- 102,
- 1,
- 102,
- 1,
- 102,
- 1,
- 102,
- 1,
- 102,
- 3,
- 102,
- 1012,
- 8,
- 102,
- 1,
- 102,
- 1,
- 102,
- 3,
- 102,
- 1016,
- 8,
- 102,
- 1,
- 103,
- 1,
- 103,
- 1,
- 104,
- 1,
- 104,
- 1,
- 105,
- 1,
- 105,
- 3,
- 105,
- 1024,
- 8,
- 105,
- 1,
- 106,
- 1,
- 106,
- 1,
- 106,
- 3,
- 106,
- 1029,
- 8,
- 106,
- 1,
- 106,
- 5,
- 106,
- 1032,
- 8,
- 106,
- 10,
- 106,
- 12,
- 106,
- 1035,
- 9,
- 106,
- 1,
- 106,
- 1,
- 106,
- 1,
- 106,
- 1,
- 107,
- 1,
- 107,
- 1,
- 107,
- 3,
- 107,
- 1043,
- 8,
- 107,
- 1,
- 107,
- 5,
- 107,
- 1046,
- 8,
- 107,
- 10,
- 107,
- 12,
- 107,
- 1049,
- 9,
- 107,
- 1,
- 107,
- 1,
- 107,
- 1,
- 107,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 1,
- 108,
- 3,
- 108,
- 1076,
- 8,
- 108,
- 1,
- 109,
- 1,
- 109,
- 1,
- 110,
- 1,
- 110,
- 3,
- 110,
- 1082,
- 8,
- 110,
- 1,
- 111,
- 1,
- 111,
- 1,
- 111,
- 1,
- 111,
- 1,
- 111,
- 1,
- 111,
- 1,
- 112,
- 1,
- 112,
- 1,
- 112,
- 5,
- 112,
- 1093,
- 8,
- 112,
- 10,
- 112,
- 12,
- 112,
- 1096,
- 9,
- 112,
- 1,
- 113,
- 1,
- 113,
- 1,
- 113,
- 5,
- 113,
- 1101,
- 8,
- 113,
- 10,
- 113,
- 12,
- 113,
- 1104,
- 9,
- 113,
- 1,
- 114,
- 1,
- 114,
- 1,
- 114,
- 5,
- 114,
- 1109,
- 8,
- 114,
- 10,
- 114,
- 12,
- 114,
- 1112,
- 9,
- 114,
- 1,
- 115,
- 1,
- 115,
- 1,
- 115,
- 3,
- 115,
- 1117,
- 8,
- 115,
- 1,
- 116,
- 1,
- 116,
- 1,
- 116,
- 1,
- 116,
- 1,
- 116,
- 1,
- 116,
- 1,
- 116,
- 5,
- 116,
- 1126,
- 8,
- 116,
- 10,
- 116,
- 12,
- 116,
- 1129,
- 9,
- 116,
- 1,
- 117,
- 1,
- 117,
- 1,
- 118,
- 1,
- 118,
- 1,
- 118,
- 1,
- 118,
- 1,
- 118,
- 1,
- 118,
- 1,
- 118,
- 5,
- 118,
- 1140,
- 8,
- 118,
- 10,
- 118,
- 12,
- 118,
- 1143,
- 9,
- 118,
- 1,
- 119,
- 1,
- 119,
- 1,
- 120,
- 1,
- 120,
- 1,
- 120,
- 1,
- 120,
- 1,
- 120,
- 1,
- 120,
- 1,
- 120,
- 5,
- 120,
- 1154,
- 8,
- 120,
- 10,
- 120,
- 12,
- 120,
- 1157,
- 9,
- 120,
- 1,
- 121,
- 1,
- 121,
- 1,
- 122,
- 1,
- 122,
- 1,
- 122,
- 3,
- 122,
- 1164,
- 8,
- 122,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 3,
- 123,
- 1191,
- 8,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 1,
- 123,
- 5,
- 123,
- 1197,
- 8,
- 123,
- 10,
- 123,
- 12,
- 123,
- 1200,
- 9,
- 123,
- 1,
- 124,
- 1,
- 124,
- 1,
- 124,
- 1,
- 124,
- 1,
- 125,
- 1,
- 125,
- 1,
- 125,
- 1,
- 125,
- 1,
- 125,
- 1,
- 125,
- 1,
- 125,
- 3,
- 125,
- 1213,
- 8,
- 125,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 1,
- 126,
- 3,
- 126,
- 1224,
- 8,
- 126,
- 1,
- 127,
- 1,
- 127,
- 1,
- 127,
- 1,
- 127,
- 5,
- 127,
- 1230,
- 8,
- 127,
- 10,
- 127,
- 12,
- 127,
- 1233,
- 9,
- 127,
- 1,
- 127,
- 1,
- 127,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 1,
- 128,
- 3,
- 128,
- 1250,
- 8,
- 128,
- 1,
- 129,
- 1,
- 129,
- 1,
- 129,
- 5,
- 129,
- 1255,
- 8,
- 129,
- 10,
- 129,
- 12,
- 129,
- 1258,
- 9,
- 129,
- 1,
- 129,
- 1,
- 129,
- 1,
- 130,
- 1,
- 130,
- 1,
- 130,
- 5,
- 130,
- 1265,
- 8,
- 130,
- 10,
- 130,
- 12,
- 130,
- 1268,
- 9,
- 130,
- 1,
- 131,
- 1,
- 131,
- 1,
- 131,
- 1,
- 131,
- 1,
- 131,
- 3,
- 131,
- 1275,
- 8,
- 131,
- 1,
- 132,
- 1,
- 132,
- 1,
- 133,
- 1,
- 133,
- 1,
- 133,
- 5,
- 133,
- 1282,
- 8,
- 133,
- 10,
- 133,
- 12,
- 133,
- 1285,
- 9,
- 133,
- 1,
- 133,
- 1,
- 133,
- 5,
- 133,
- 1289,
- 8,
- 133,
- 10,
- 133,
- 12,
- 133,
- 1292,
- 9,
- 133,
- 1,
- 133,
- 1,
- 133,
- 1,
- 133,
- 5,
- 133,
- 1297,
- 8,
- 133,
- 10,
- 133,
- 12,
- 133,
- 1300,
- 9,
- 133,
- 3,
- 133,
- 1302,
- 8,
- 133,
- 1,
- 134,
- 1,
- 134,
- 1,
- 135,
- 1,
- 135,
- 1,
- 135,
- 1,
- 135,
- 1,
- 136,
- 1,
- 136,
- 3,
- 136,
- 1312,
- 8,
- 136,
- 1,
- 136,
- 1,
- 136,
- 1,
- 137,
- 1,
- 137,
- 1,
- 137,
- 0,
- 5,
- 8,
- 232,
- 236,
- 240,
- 246,
- 138,
- 0,
- 2,
- 4,
- 6,
- 8,
- 10,
- 12,
- 14,
- 16,
- 18,
- 20,
- 22,
- 24,
- 26,
- 28,
- 30,
- 32,
- 34,
- 36,
- 38,
- 40,
- 42,
- 44,
- 46,
- 48,
- 50,
- 52,
- 54,
- 56,
- 58,
- 60,
- 62,
- 64,
- 66,
- 68,
- 70,
- 72,
- 74,
- 76,
- 78,
- 80,
- 82,
- 84,
- 86,
- 88,
- 90,
- 92,
- 94,
- 96,
- 98,
- 100,
- 102,
- 104,
- 106,
- 108,
- 110,
- 112,
- 114,
- 116,
- 118,
- 120,
- 122,
- 124,
- 126,
- 128,
- 130,
- 132,
- 134,
- 136,
- 138,
- 140,
- 142,
- 144,
- 146,
- 148,
- 150,
- 152,
- 154,
- 156,
- 158,
- 160,
- 162,
- 164,
- 166,
- 168,
- 170,
- 172,
- 174,
- 176,
- 178,
- 180,
- 182,
- 184,
- 186,
- 188,
- 190,
- 192,
- 194,
- 196,
- 198,
- 200,
- 202,
- 204,
- 206,
- 208,
- 210,
- 212,
- 214,
- 216,
- 218,
- 220,
- 222,
- 224,
- 226,
- 228,
- 230,
- 232,
- 234,
- 236,
- 238,
- 240,
- 242,
- 244,
- 246,
- 248,
- 250,
- 252,
- 254,
- 256,
- 258,
- 260,
- 262,
- 264,
- 266,
- 268,
- 270,
- 272,
- 274,
- 0,
- 8,
- 1,
- 0,
- 89,
- 90,
- 1,
- 0,
- 23,
- 27,
- 1,
- 0,
- 40,
- 41,
- 1,
- 0,
- 45,
- 47,
- 2,
- 0,
- 13,
- 13,
- 66,
- 71,
- 1,
- 0,
- 72,
- 73,
- 1,
- 0,
- 74,
- 76,
- 1,
- 0,
- 89,
- 91,
- 1350,
- 0,
- 279,
- 1,
- 0,
- 0,
- 0,
- 2,
- 290,
- 1,
- 0,
- 0,
- 0,
- 4,
- 297,
- 1,
- 0,
- 0,
- 0,
- 6,
- 301,
- 1,
- 0,
- 0,
- 0,
- 8,
- 303,
- 1,
- 0,
- 0,
- 0,
- 10,
- 325,
- 1,
- 0,
- 0,
- 0,
- 12,
- 327,
- 1,
- 0,
- 0,
- 0,
- 14,
- 333,
- 1,
- 0,
- 0,
- 0,
- 16,
- 335,
- 1,
- 0,
- 0,
- 0,
- 18,
- 337,
- 1,
- 0,
- 0,
- 0,
- 20,
- 342,
- 1,
- 0,
- 0,
- 0,
- 22,
- 350,
- 1,
- 0,
- 0,
- 0,
- 24,
- 352,
- 1,
- 0,
- 0,
- 0,
- 26,
- 365,
- 1,
- 0,
- 0,
- 0,
- 28,
- 373,
- 1,
- 0,
- 0,
- 0,
- 30,
- 378,
- 1,
- 0,
- 0,
- 0,
- 32,
- 384,
- 1,
- 0,
- 0,
- 0,
- 34,
- 390,
- 1,
- 0,
- 0,
- 0,
- 36,
- 405,
- 1,
- 0,
- 0,
- 0,
- 38,
- 410,
- 1,
- 0,
- 0,
- 0,
- 40,
- 412,
- 1,
- 0,
- 0,
- 0,
- 42,
- 414,
- 1,
- 0,
- 0,
- 0,
- 44,
- 416,
- 1,
- 0,
- 0,
- 0,
- 46,
- 420,
- 1,
- 0,
- 0,
- 0,
- 48,
- 429,
- 1,
- 0,
- 0,
- 0,
- 50,
- 447,
- 1,
- 0,
- 0,
- 0,
- 52,
- 457,
- 1,
- 0,
- 0,
- 0,
- 54,
- 459,
- 1,
- 0,
- 0,
- 0,
- 56,
- 461,
- 1,
- 0,
- 0,
- 0,
- 58,
- 463,
- 1,
- 0,
- 0,
- 0,
- 60,
- 481,
- 1,
- 0,
- 0,
- 0,
- 62,
- 491,
- 1,
- 0,
- 0,
- 0,
- 64,
- 493,
- 1,
- 0,
- 0,
- 0,
- 66,
- 495,
- 1,
- 0,
- 0,
- 0,
- 68,
- 514,
- 1,
- 0,
- 0,
- 0,
- 70,
- 525,
- 1,
- 0,
- 0,
- 0,
- 72,
- 530,
- 1,
- 0,
- 0,
- 0,
- 74,
- 534,
- 1,
- 0,
- 0,
- 0,
- 76,
- 536,
- 1,
- 0,
- 0,
- 0,
- 78,
- 555,
- 1,
- 0,
- 0,
- 0,
- 80,
- 560,
- 1,
- 0,
- 0,
- 0,
- 82,
- 584,
- 1,
- 0,
- 0,
- 0,
- 84,
- 588,
- 1,
- 0,
- 0,
- 0,
- 86,
- 590,
- 1,
- 0,
- 0,
- 0,
- 88,
- 605,
- 1,
- 0,
- 0,
- 0,
- 90,
- 619,
- 1,
- 0,
- 0,
- 0,
- 92,
- 625,
- 1,
- 0,
- 0,
- 0,
- 94,
- 627,
- 1,
- 0,
- 0,
- 0,
- 96,
- 648,
- 1,
- 0,
- 0,
- 0,
- 98,
- 653,
- 1,
- 0,
- 0,
- 0,
- 100,
- 655,
- 1,
- 0,
- 0,
- 0,
- 102,
- 657,
- 1,
- 0,
- 0,
- 0,
- 104,
- 661,
- 1,
- 0,
- 0,
- 0,
- 106,
- 663,
- 1,
- 0,
- 0,
- 0,
- 108,
- 665,
- 1,
- 0,
- 0,
- 0,
- 110,
- 688,
- 1,
- 0,
- 0,
- 0,
- 112,
- 690,
- 1,
- 0,
- 0,
- 0,
- 114,
- 693,
- 1,
- 0,
- 0,
- 0,
- 116,
- 696,
- 1,
- 0,
- 0,
- 0,
- 118,
- 698,
- 1,
- 0,
- 0,
- 0,
- 120,
- 703,
- 1,
- 0,
- 0,
- 0,
- 122,
- 712,
- 1,
- 0,
- 0,
- 0,
- 124,
- 714,
- 1,
- 0,
- 0,
- 0,
- 126,
- 719,
- 1,
- 0,
- 0,
- 0,
- 128,
- 724,
- 1,
- 0,
- 0,
- 0,
- 130,
- 729,
- 1,
- 0,
- 0,
- 0,
- 132,
- 741,
- 1,
- 0,
- 0,
- 0,
- 134,
- 743,
- 1,
- 0,
- 0,
- 0,
- 136,
- 747,
- 1,
- 0,
- 0,
- 0,
- 138,
- 749,
- 1,
- 0,
- 0,
- 0,
- 140,
- 767,
- 1,
- 0,
- 0,
- 0,
- 142,
- 787,
- 1,
- 0,
- 0,
- 0,
- 144,
- 798,
- 1,
- 0,
- 0,
- 0,
- 146,
- 800,
- 1,
- 0,
- 0,
- 0,
- 148,
- 813,
- 1,
- 0,
- 0,
- 0,
- 150,
- 817,
- 1,
- 0,
- 0,
- 0,
- 152,
- 819,
- 1,
- 0,
- 0,
- 0,
- 154,
- 828,
- 1,
- 0,
- 0,
- 0,
- 156,
- 830,
- 1,
- 0,
- 0,
- 0,
- 158,
- 832,
- 1,
- 0,
- 0,
- 0,
- 160,
- 840,
- 1,
- 0,
- 0,
- 0,
- 162,
- 848,
- 1,
- 0,
- 0,
- 0,
- 164,
- 858,
- 1,
- 0,
- 0,
- 0,
- 166,
- 865,
- 1,
- 0,
- 0,
- 0,
- 168,
- 867,
- 1,
- 0,
- 0,
- 0,
- 170,
- 881,
- 1,
- 0,
- 0,
- 0,
- 172,
- 883,
- 1,
- 0,
- 0,
- 0,
- 174,
- 889,
- 1,
- 0,
- 0,
- 0,
- 176,
- 898,
- 1,
- 0,
- 0,
- 0,
- 178,
- 918,
- 1,
- 0,
- 0,
- 0,
- 180,
- 923,
- 1,
- 0,
- 0,
- 0,
- 182,
- 935,
- 1,
- 0,
- 0,
- 0,
- 184,
- 949,
- 1,
- 0,
- 0,
- 0,
- 186,
- 951,
- 1,
- 0,
- 0,
- 0,
- 188,
- 953,
- 1,
- 0,
- 0,
- 0,
- 190,
- 955,
- 1,
- 0,
- 0,
- 0,
- 192,
- 959,
- 1,
- 0,
- 0,
- 0,
- 194,
- 969,
- 1,
- 0,
- 0,
- 0,
- 196,
- 973,
- 1,
- 0,
- 0,
- 0,
- 198,
- 977,
- 1,
- 0,
- 0,
- 0,
- 200,
- 984,
- 1,
- 0,
- 0,
- 0,
- 202,
- 998,
- 1,
- 0,
- 0,
- 0,
- 204,
- 1000,
- 1,
- 0,
- 0,
- 0,
- 206,
- 1017,
- 1,
- 0,
- 0,
- 0,
- 208,
- 1019,
- 1,
- 0,
- 0,
- 0,
- 210,
- 1023,
- 1,
- 0,
- 0,
- 0,
- 212,
- 1025,
- 1,
- 0,
- 0,
- 0,
- 214,
- 1039,
- 1,
- 0,
- 0,
- 0,
- 216,
- 1075,
- 1,
- 0,
- 0,
- 0,
- 218,
- 1077,
- 1,
- 0,
- 0,
- 0,
- 220,
- 1081,
- 1,
- 0,
- 0,
- 0,
- 222,
- 1083,
- 1,
- 0,
- 0,
- 0,
- 224,
- 1089,
- 1,
- 0,
- 0,
- 0,
- 226,
- 1097,
- 1,
- 0,
- 0,
- 0,
- 228,
- 1105,
- 1,
- 0,
- 0,
- 0,
- 230,
- 1116,
- 1,
- 0,
- 0,
- 0,
- 232,
- 1118,
- 1,
- 0,
- 0,
- 0,
- 234,
- 1130,
- 1,
- 0,
- 0,
- 0,
- 236,
- 1132,
- 1,
- 0,
- 0,
- 0,
- 238,
- 1144,
- 1,
- 0,
- 0,
- 0,
- 240,
- 1146,
- 1,
- 0,
- 0,
- 0,
- 242,
- 1158,
- 1,
- 0,
- 0,
- 0,
- 244,
- 1163,
- 1,
- 0,
- 0,
- 0,
- 246,
- 1165,
- 1,
- 0,
- 0,
- 0,
- 248,
- 1201,
- 1,
- 0,
- 0,
- 0,
- 250,
- 1212,
- 1,
- 0,
- 0,
- 0,
- 252,
- 1223,
- 1,
- 0,
- 0,
- 0,
- 254,
- 1225,
- 1,
- 0,
- 0,
- 0,
- 256,
- 1249,
- 1,
- 0,
- 0,
- 0,
- 258,
- 1256,
- 1,
- 0,
- 0,
- 0,
- 260,
- 1261,
- 1,
- 0,
- 0,
- 0,
- 262,
- 1269,
- 1,
- 0,
- 0,
- 0,
- 264,
- 1276,
- 1,
- 0,
- 0,
- 0,
- 266,
- 1301,
- 1,
- 0,
- 0,
- 0,
- 268,
- 1303,
- 1,
- 0,
- 0,
- 0,
- 270,
- 1305,
- 1,
- 0,
- 0,
- 0,
- 272,
- 1311,
- 1,
- 0,
- 0,
- 0,
- 274,
- 1315,
- 1,
- 0,
- 0,
- 0,
- 276,
- 278,
- 3,
- 2,
- 1,
- 0,
- 277,
- 276,
- 1,
- 0,
- 0,
- 0,
- 278,
- 281,
- 1,
- 0,
- 0,
- 0,
- 279,
- 277,
- 1,
- 0,
- 0,
- 0,
- 279,
- 280,
- 1,
- 0,
- 0,
- 0,
- 280,
- 285,
- 1,
- 0,
- 0,
- 0,
- 281,
- 279,
- 1,
- 0,
- 0,
- 0,
- 282,
- 284,
- 3,
- 10,
- 5,
- 0,
- 283,
- 282,
- 1,
- 0,
- 0,
- 0,
- 284,
- 287,
- 1,
- 0,
- 0,
- 0,
- 285,
- 283,
- 1,
- 0,
- 0,
- 0,
- 285,
- 286,
- 1,
- 0,
- 0,
- 0,
- 286,
- 288,
- 1,
- 0,
- 0,
- 0,
- 287,
- 285,
- 1,
- 0,
- 0,
- 0,
- 288,
- 289,
- 5,
- 0,
- 0,
- 1,
- 289,
- 1,
- 1,
- 0,
- 0,
- 0,
- 290,
- 291,
- 3,
- 4,
- 2,
- 0,
- 291,
- 3,
- 1,
- 0,
- 0,
- 0,
- 292,
- 293,
- 5,
- 1,
- 0,
- 0,
- 293,
- 294,
- 3,
- 6,
- 3,
- 0,
- 294,
- 295,
- 5,
- 79,
- 0,
- 0,
- 295,
- 298,
- 1,
- 0,
- 0,
- 0,
- 296,
- 298,
- 5,
- 79,
- 0,
- 0,
- 297,
- 292,
- 1,
- 0,
- 0,
- 0,
- 297,
- 296,
- 1,
- 0,
- 0,
- 0,
- 298,
- 5,
- 1,
- 0,
- 0,
- 0,
- 299,
- 302,
- 5,
- 87,
- 0,
- 0,
- 300,
- 302,
- 3,
- 8,
- 4,
- 0,
- 301,
- 299,
- 1,
- 0,
- 0,
- 0,
- 301,
- 300,
- 1,
- 0,
- 0,
- 0,
- 302,
- 7,
- 1,
- 0,
- 0,
- 0,
- 303,
- 304,
- 6,
- 4,
- -1,
- 0,
- 304,
- 305,
- 5,
- 93,
- 0,
- 0,
- 305,
- 311,
- 1,
- 0,
- 0,
- 0,
- 306,
- 307,
- 10,
- 1,
- 0,
- 0,
- 307,
- 308,
- 5,
- 2,
- 0,
- 0,
- 308,
- 310,
- 5,
- 93,
- 0,
- 0,
- 309,
- 306,
- 1,
- 0,
- 0,
- 0,
- 310,
- 313,
- 1,
- 0,
- 0,
- 0,
- 311,
- 309,
- 1,
- 0,
- 0,
- 0,
- 311,
- 312,
- 1,
- 0,
- 0,
- 0,
- 312,
- 9,
- 1,
- 0,
- 0,
- 0,
- 313,
- 311,
- 1,
- 0,
- 0,
- 0,
- 314,
- 326,
- 3,
- 12,
- 6,
- 0,
- 315,
- 326,
- 3,
- 20,
- 10,
- 0,
- 316,
- 326,
- 3,
- 34,
- 17,
- 0,
- 317,
- 326,
- 3,
- 48,
- 24,
- 0,
- 318,
- 326,
- 3,
- 58,
- 29,
- 0,
- 319,
- 326,
- 3,
- 76,
- 38,
- 0,
- 320,
- 326,
- 3,
- 66,
- 33,
- 0,
- 321,
- 326,
- 3,
- 80,
- 40,
- 0,
- 322,
- 326,
- 3,
- 84,
- 42,
- 0,
- 323,
- 326,
- 3,
- 94,
- 47,
- 0,
- 324,
- 326,
- 5,
- 79,
- 0,
- 0,
- 325,
- 314,
- 1,
- 0,
- 0,
- 0,
- 325,
- 315,
- 1,
- 0,
- 0,
- 0,
- 325,
- 316,
- 1,
- 0,
- 0,
- 0,
- 325,
- 317,
- 1,
- 0,
- 0,
- 0,
- 325,
- 318,
- 1,
- 0,
- 0,
- 0,
- 325,
- 319,
- 1,
- 0,
- 0,
- 0,
- 325,
- 320,
- 1,
- 0,
- 0,
- 0,
- 325,
- 321,
- 1,
- 0,
- 0,
- 0,
- 325,
- 322,
- 1,
- 0,
- 0,
- 0,
- 325,
- 323,
- 1,
- 0,
- 0,
- 0,
- 325,
- 324,
- 1,
- 0,
- 0,
- 0,
- 326,
- 11,
- 1,
- 0,
- 0,
- 0,
- 327,
- 328,
- 5,
- 3,
- 0,
- 0,
- 328,
- 329,
- 3,
- 14,
- 7,
- 0,
- 329,
- 330,
- 5,
- 4,
- 0,
- 0,
- 330,
- 331,
- 3,
- 16,
- 8,
- 0,
- 331,
- 332,
- 5,
- 79,
- 0,
- 0,
- 332,
- 13,
- 1,
- 0,
- 0,
- 0,
- 333,
- 334,
- 5,
- 93,
- 0,
- 0,
- 334,
- 15,
- 1,
- 0,
- 0,
- 0,
- 335,
- 336,
- 3,
- 18,
- 9,
- 0,
- 336,
- 17,
- 1,
- 0,
- 0,
- 0,
- 337,
- 338,
- 5,
- 5,
- 0,
- 0,
- 338,
- 339,
- 5,
- 82,
- 0,
- 0,
- 339,
- 340,
- 3,
- 26,
- 13,
- 0,
- 340,
- 341,
- 5,
- 83,
- 0,
- 0,
- 341,
- 19,
- 1,
- 0,
- 0,
- 0,
- 342,
- 343,
- 5,
- 6,
- 0,
- 0,
- 343,
- 344,
- 5,
- 93,
- 0,
- 0,
- 344,
- 345,
- 5,
- 7,
- 0,
- 0,
- 345,
- 346,
- 3,
- 14,
- 7,
- 0,
- 346,
- 347,
- 5,
- 4,
- 0,
- 0,
- 347,
- 348,
- 3,
- 22,
- 11,
- 0,
- 348,
- 349,
- 5,
- 79,
- 0,
- 0,
- 349,
- 21,
- 1,
- 0,
- 0,
- 0,
- 350,
- 351,
- 3,
- 24,
- 12,
- 0,
- 351,
- 23,
- 1,
- 0,
- 0,
- 0,
- 352,
- 353,
- 5,
- 5,
- 0,
- 0,
- 353,
- 354,
- 5,
- 82,
- 0,
- 0,
- 354,
- 357,
- 3,
- 26,
- 13,
- 0,
- 355,
- 356,
- 5,
- 8,
- 0,
- 0,
- 356,
- 358,
- 3,
- 30,
- 15,
- 0,
- 357,
- 355,
- 1,
- 0,
- 0,
- 0,
- 357,
- 358,
- 1,
- 0,
- 0,
- 0,
- 358,
- 361,
- 1,
- 0,
- 0,
- 0,
- 359,
- 360,
- 5,
- 8,
- 0,
- 0,
- 360,
- 362,
- 3,
- 32,
- 16,
- 0,
- 361,
- 359,
- 1,
- 0,
- 0,
- 0,
- 361,
- 362,
- 1,
- 0,
- 0,
- 0,
- 362,
- 363,
- 1,
- 0,
- 0,
- 0,
- 363,
- 364,
- 5,
- 83,
- 0,
- 0,
- 364,
- 25,
- 1,
- 0,
- 0,
- 0,
- 365,
- 370,
- 3,
- 28,
- 14,
- 0,
- 366,
- 367,
- 5,
- 8,
- 0,
- 0,
- 367,
- 369,
- 3,
- 28,
- 14,
- 0,
- 368,
- 366,
- 1,
- 0,
- 0,
- 0,
- 369,
- 372,
- 1,
- 0,
- 0,
- 0,
- 370,
- 368,
- 1,
- 0,
- 0,
- 0,
- 370,
- 371,
- 1,
- 0,
- 0,
- 0,
- 371,
- 27,
- 1,
- 0,
- 0,
- 0,
- 372,
- 370,
- 1,
- 0,
- 0,
- 0,
- 373,
- 374,
- 5,
- 93,
- 0,
- 0,
- 374,
- 375,
- 6,
- 14,
- -1,
- 0,
- 375,
- 376,
- 5,
- 9,
- 0,
- 0,
- 376,
- 377,
- 3,
- 274,
- 137,
- 0,
- 377,
- 29,
- 1,
- 0,
- 0,
- 0,
- 378,
- 379,
- 5,
- 93,
- 0,
- 0,
- 379,
- 382,
- 5,
- 9,
- 0,
- 0,
- 380,
- 383,
- 5,
- 88,
- 0,
- 0,
- 381,
- 383,
- 3,
- 274,
- 137,
- 0,
- 382,
- 380,
- 1,
- 0,
- 0,
- 0,
- 382,
- 381,
- 1,
- 0,
- 0,
- 0,
- 383,
- 31,
- 1,
- 0,
- 0,
- 0,
- 384,
- 385,
- 5,
- 93,
- 0,
- 0,
- 385,
- 388,
- 5,
- 9,
- 0,
- 0,
- 386,
- 389,
- 5,
- 88,
- 0,
- 0,
- 387,
- 389,
- 3,
- 274,
- 137,
- 0,
- 388,
- 386,
- 1,
- 0,
- 0,
- 0,
- 388,
- 387,
- 1,
- 0,
- 0,
- 0,
- 389,
- 33,
- 1,
- 0,
- 0,
- 0,
- 390,
- 391,
- 5,
- 10,
- 0,
- 0,
- 391,
- 392,
- 3,
- 40,
- 20,
- 0,
- 392,
- 393,
- 5,
- 9,
- 0,
- 0,
- 393,
- 394,
- 5,
- 80,
- 0,
- 0,
- 394,
- 399,
- 3,
- 36,
- 18,
- 0,
- 395,
- 396,
- 5,
- 8,
- 0,
- 0,
- 396,
- 398,
- 3,
- 36,
- 18,
- 0,
- 397,
- 395,
- 1,
- 0,
- 0,
- 0,
- 398,
- 401,
- 1,
- 0,
- 0,
- 0,
- 399,
- 397,
- 1,
- 0,
- 0,
- 0,
- 399,
- 400,
- 1,
- 0,
- 0,
- 0,
- 400,
- 402,
- 1,
- 0,
- 0,
- 0,
- 401,
- 399,
- 1,
- 0,
- 0,
- 0,
- 402,
- 403,
- 5,
- 81,
- 0,
- 0,
- 403,
- 404,
- 5,
- 79,
- 0,
- 0,
- 404,
- 35,
- 1,
- 0,
- 0,
- 0,
- 405,
- 408,
- 3,
- 42,
- 21,
- 0,
- 406,
- 407,
- 5,
- 11,
- 0,
- 0,
- 407,
- 409,
- 3,
- 38,
- 19,
- 0,
- 408,
- 406,
- 1,
- 0,
- 0,
- 0,
- 408,
- 409,
- 1,
- 0,
- 0,
- 0,
- 409,
- 37,
- 1,
- 0,
- 0,
- 0,
- 410,
- 411,
- 7,
- 0,
- 0,
- 0,
- 411,
- 39,
- 1,
- 0,
- 0,
- 0,
- 412,
- 413,
- 5,
- 93,
- 0,
- 0,
- 413,
- 41,
- 1,
- 0,
- 0,
- 0,
- 414,
- 415,
- 5,
- 93,
- 0,
- 0,
- 415,
- 43,
- 1,
- 0,
- 0,
- 0,
- 416,
- 417,
- 3,
- 40,
- 20,
- 0,
- 417,
- 418,
- 5,
- 12,
- 0,
- 0,
- 418,
- 419,
- 3,
- 42,
- 21,
- 0,
- 419,
- 45,
- 1,
- 0,
- 0,
- 0,
- 420,
- 421,
- 5,
- 82,
- 0,
- 0,
- 421,
- 422,
- 3,
- 54,
- 27,
- 0,
- 422,
- 425,
- 5,
- 13,
- 0,
- 0,
- 423,
- 426,
- 3,
- 44,
- 22,
- 0,
- 424,
- 426,
- 5,
- 92,
- 0,
- 0,
- 425,
- 423,
- 1,
- 0,
- 0,
- 0,
- 425,
- 424,
- 1,
- 0,
- 0,
- 0,
- 426,
- 427,
- 1,
- 0,
- 0,
- 0,
- 427,
- 428,
- 5,
- 83,
- 0,
- 0,
- 428,
- 47,
- 1,
- 0,
- 0,
- 0,
- 429,
- 430,
- 5,
- 14,
- 0,
- 0,
- 430,
- 432,
- 3,
- 56,
- 28,
- 0,
- 431,
- 433,
- 3,
- 50,
- 25,
- 0,
- 432,
- 431,
- 1,
- 0,
- 0,
- 0,
- 432,
- 433,
- 1,
- 0,
- 0,
- 0,
- 433,
- 445,
- 1,
- 0,
- 0,
- 0,
- 434,
- 435,
- 5,
- 9,
- 0,
- 0,
- 435,
- 436,
- 5,
- 79,
- 0,
- 0,
- 436,
- 438,
- 5,
- 94,
- 0,
- 0,
- 437,
- 439,
- 3,
- 52,
- 26,
- 0,
- 438,
- 437,
- 1,
- 0,
- 0,
- 0,
- 439,
- 440,
- 1,
- 0,
- 0,
- 0,
- 440,
- 438,
- 1,
- 0,
- 0,
- 0,
- 440,
- 441,
- 1,
- 0,
- 0,
- 0,
- 441,
- 442,
- 1,
- 0,
- 0,
- 0,
- 442,
- 443,
- 5,
- 95,
- 0,
- 0,
- 443,
- 446,
- 1,
- 0,
- 0,
- 0,
- 444,
- 446,
- 5,
- 79,
- 0,
- 0,
- 445,
- 434,
- 1,
- 0,
- 0,
- 0,
- 445,
- 444,
- 1,
- 0,
- 0,
- 0,
- 446,
- 49,
- 1,
- 0,
- 0,
- 0,
- 447,
- 448,
- 5,
- 15,
- 0,
- 0,
- 448,
- 450,
- 3,
- 56,
- 28,
- 0,
- 449,
- 451,
- 3,
- 46,
- 23,
- 0,
- 450,
- 449,
- 1,
- 0,
- 0,
- 0,
- 450,
- 451,
- 1,
- 0,
- 0,
- 0,
- 451,
- 51,
- 1,
- 0,
- 0,
- 0,
- 452,
- 458,
- 3,
- 108,
- 54,
- 0,
- 453,
- 458,
- 3,
- 136,
- 68,
- 0,
- 454,
- 458,
- 3,
- 150,
- 75,
- 0,
- 455,
- 458,
- 3,
- 200,
- 100,
- 0,
- 456,
- 458,
- 3,
- 210,
- 105,
- 0,
- 457,
- 452,
- 1,
- 0,
- 0,
- 0,
- 457,
- 453,
- 1,
- 0,
- 0,
- 0,
- 457,
- 454,
- 1,
- 0,
- 0,
- 0,
- 457,
- 455,
- 1,
- 0,
- 0,
- 0,
- 457,
- 456,
- 1,
- 0,
- 0,
- 0,
- 458,
- 53,
- 1,
- 0,
- 0,
- 0,
- 459,
- 460,
- 5,
- 93,
- 0,
- 0,
- 460,
- 55,
- 1,
- 0,
- 0,
- 0,
- 461,
- 462,
- 5,
- 93,
- 0,
- 0,
- 462,
- 57,
- 1,
- 0,
- 0,
- 0,
- 463,
- 464,
- 5,
- 16,
- 0,
- 0,
- 464,
- 466,
- 3,
- 64,
- 32,
- 0,
- 465,
- 467,
- 3,
- 60,
- 30,
- 0,
- 466,
- 465,
- 1,
- 0,
- 0,
- 0,
- 466,
- 467,
- 1,
- 0,
- 0,
- 0,
- 467,
- 479,
- 1,
- 0,
- 0,
- 0,
- 468,
- 469,
- 5,
- 9,
- 0,
- 0,
- 469,
- 470,
- 5,
- 79,
- 0,
- 0,
- 470,
- 472,
- 5,
- 94,
- 0,
- 0,
- 471,
- 473,
- 3,
- 62,
- 31,
- 0,
- 472,
- 471,
- 1,
- 0,
- 0,
- 0,
- 473,
- 474,
- 1,
- 0,
- 0,
- 0,
- 474,
- 472,
- 1,
- 0,
- 0,
- 0,
- 474,
- 475,
- 1,
- 0,
- 0,
- 0,
- 475,
- 476,
- 1,
- 0,
- 0,
- 0,
- 476,
- 477,
- 5,
- 95,
- 0,
- 0,
- 477,
- 480,
- 1,
- 0,
- 0,
- 0,
- 478,
- 480,
- 5,
- 79,
- 0,
- 0,
- 479,
- 468,
- 1,
- 0,
- 0,
- 0,
- 479,
- 478,
- 1,
- 0,
- 0,
- 0,
- 480,
- 59,
- 1,
- 0,
- 0,
- 0,
- 481,
- 482,
- 5,
- 15,
- 0,
- 0,
- 482,
- 484,
- 3,
- 64,
- 32,
- 0,
- 483,
- 485,
- 3,
- 46,
- 23,
- 0,
- 484,
- 483,
- 1,
- 0,
- 0,
- 0,
- 484,
- 485,
- 1,
- 0,
- 0,
- 0,
- 485,
- 61,
- 1,
- 0,
- 0,
- 0,
- 486,
- 492,
- 3,
- 108,
- 54,
- 0,
- 487,
- 492,
- 3,
- 136,
- 68,
- 0,
- 488,
- 492,
- 3,
- 150,
- 75,
- 0,
- 489,
- 492,
- 3,
- 200,
- 100,
- 0,
- 490,
- 492,
- 3,
- 210,
- 105,
- 0,
- 491,
- 486,
- 1,
- 0,
- 0,
- 0,
- 491,
- 487,
- 1,
- 0,
- 0,
- 0,
- 491,
- 488,
- 1,
- 0,
- 0,
- 0,
- 491,
- 489,
- 1,
- 0,
- 0,
- 0,
- 491,
- 490,
- 1,
- 0,
- 0,
- 0,
- 492,
- 63,
- 1,
- 0,
- 0,
- 0,
- 493,
- 494,
- 5,
- 93,
- 0,
- 0,
- 494,
- 65,
- 1,
- 0,
- 0,
- 0,
- 495,
- 496,
- 5,
- 17,
- 0,
- 0,
- 496,
- 498,
- 3,
- 72,
- 36,
- 0,
- 497,
- 499,
- 3,
- 68,
- 34,
- 0,
- 498,
- 497,
- 1,
- 0,
- 0,
- 0,
- 498,
- 499,
- 1,
- 0,
- 0,
- 0,
- 499,
- 512,
- 1,
- 0,
- 0,
- 0,
- 500,
- 501,
- 5,
- 9,
- 0,
- 0,
- 501,
- 502,
- 5,
- 79,
- 0,
- 0,
- 502,
- 505,
- 5,
- 94,
- 0,
- 0,
- 503,
- 506,
- 3,
- 70,
- 35,
- 0,
- 504,
- 506,
- 3,
- 166,
- 83,
- 0,
- 505,
- 503,
- 1,
- 0,
- 0,
- 0,
- 505,
- 504,
- 1,
- 0,
- 0,
- 0,
- 506,
- 507,
- 1,
- 0,
- 0,
- 0,
- 507,
- 505,
- 1,
- 0,
- 0,
- 0,
- 507,
- 508,
- 1,
- 0,
- 0,
- 0,
- 508,
- 509,
- 1,
- 0,
- 0,
- 0,
- 509,
- 510,
- 5,
- 95,
- 0,
- 0,
- 510,
- 513,
- 1,
- 0,
- 0,
- 0,
- 511,
- 513,
- 5,
- 79,
- 0,
- 0,
- 512,
- 500,
- 1,
- 0,
- 0,
- 0,
- 512,
- 511,
- 1,
- 0,
- 0,
- 0,
- 513,
- 67,
- 1,
- 0,
- 0,
- 0,
- 514,
- 515,
- 5,
- 15,
- 0,
- 0,
- 515,
- 517,
- 3,
- 72,
- 36,
- 0,
- 516,
- 518,
- 3,
- 46,
- 23,
- 0,
- 517,
- 516,
- 1,
- 0,
- 0,
- 0,
- 517,
- 518,
- 1,
- 0,
- 0,
- 0,
- 518,
- 69,
- 1,
- 0,
- 0,
- 0,
- 519,
- 526,
- 3,
- 108,
- 54,
- 0,
- 520,
- 526,
- 3,
- 136,
- 68,
- 0,
- 521,
- 526,
- 3,
- 150,
- 75,
- 0,
- 522,
- 526,
- 3,
- 200,
- 100,
- 0,
- 523,
- 526,
- 3,
- 210,
- 105,
- 0,
- 524,
- 526,
- 3,
- 162,
- 81,
- 0,
- 525,
- 519,
- 1,
- 0,
- 0,
- 0,
- 525,
- 520,
- 1,
- 0,
- 0,
- 0,
- 525,
- 521,
- 1,
- 0,
- 0,
- 0,
- 525,
- 522,
- 1,
- 0,
- 0,
- 0,
- 525,
- 523,
- 1,
- 0,
- 0,
- 0,
- 525,
- 524,
- 1,
- 0,
- 0,
- 0,
- 526,
- 71,
- 1,
- 0,
- 0,
- 0,
- 527,
- 528,
- 3,
- 64,
- 32,
- 0,
- 528,
- 529,
- 5,
- 2,
- 0,
- 0,
- 529,
- 531,
- 1,
- 0,
- 0,
- 0,
- 530,
- 527,
- 1,
- 0,
- 0,
- 0,
- 530,
- 531,
- 1,
- 0,
- 0,
- 0,
- 531,
- 532,
- 1,
- 0,
- 0,
- 0,
- 532,
- 533,
- 3,
- 74,
- 37,
- 0,
- 533,
- 73,
- 1,
- 0,
- 0,
- 0,
- 534,
- 535,
- 5,
- 93,
- 0,
- 0,
- 535,
- 75,
- 1,
- 0,
- 0,
- 0,
- 536,
- 537,
- 5,
- 18,
- 0,
- 0,
- 537,
- 539,
- 3,
- 72,
- 36,
- 0,
- 538,
- 540,
- 3,
- 78,
- 39,
- 0,
- 539,
- 538,
- 1,
- 0,
- 0,
- 0,
- 539,
- 540,
- 1,
- 0,
- 0,
- 0,
- 540,
- 553,
- 1,
- 0,
- 0,
- 0,
- 541,
- 542,
- 5,
- 9,
- 0,
- 0,
- 542,
- 543,
- 5,
- 79,
- 0,
- 0,
- 543,
- 546,
- 5,
- 94,
- 0,
- 0,
- 544,
- 547,
- 3,
- 70,
- 35,
- 0,
- 545,
- 547,
- 3,
- 166,
- 83,
- 0,
- 546,
- 544,
- 1,
- 0,
- 0,
- 0,
- 546,
- 545,
- 1,
- 0,
- 0,
- 0,
- 547,
- 548,
- 1,
- 0,
- 0,
- 0,
- 548,
- 546,
- 1,
- 0,
- 0,
- 0,
- 548,
- 549,
- 1,
- 0,
- 0,
- 0,
- 549,
- 550,
- 1,
- 0,
- 0,
- 0,
- 550,
- 551,
- 5,
- 95,
- 0,
- 0,
- 551,
- 554,
- 1,
- 0,
- 0,
- 0,
- 552,
- 554,
- 5,
- 79,
- 0,
- 0,
- 553,
- 541,
- 1,
- 0,
- 0,
- 0,
- 553,
- 552,
- 1,
- 0,
- 0,
- 0,
- 554,
- 77,
- 1,
- 0,
- 0,
- 0,
- 555,
- 556,
- 5,
- 15,
- 0,
- 0,
- 556,
- 558,
- 3,
- 72,
- 36,
- 0,
- 557,
- 559,
- 3,
- 46,
- 23,
- 0,
- 558,
- 557,
- 1,
- 0,
- 0,
- 0,
- 558,
- 559,
- 1,
- 0,
- 0,
- 0,
- 559,
- 79,
- 1,
- 0,
- 0,
- 0,
- 560,
- 564,
- 5,
- 19,
- 0,
- 0,
- 561,
- 562,
- 3,
- 64,
- 32,
- 0,
- 562,
- 563,
- 5,
- 2,
- 0,
- 0,
- 563,
- 565,
- 1,
- 0,
- 0,
- 0,
- 564,
- 561,
- 1,
- 0,
- 0,
- 0,
- 564,
- 565,
- 1,
- 0,
- 0,
- 0,
- 565,
- 566,
- 1,
- 0,
- 0,
- 0,
- 566,
- 569,
- 3,
- 82,
- 41,
- 0,
- 567,
- 568,
- 5,
- 7,
- 0,
- 0,
- 568,
- 570,
- 3,
- 72,
- 36,
- 0,
- 569,
- 567,
- 1,
- 0,
- 0,
- 0,
- 569,
- 570,
- 1,
- 0,
- 0,
- 0,
- 570,
- 582,
- 1,
- 0,
- 0,
- 0,
- 571,
- 572,
- 5,
- 9,
- 0,
- 0,
- 572,
- 573,
- 5,
- 79,
- 0,
- 0,
- 573,
- 575,
- 5,
- 94,
- 0,
- 0,
- 574,
- 576,
- 3,
- 70,
- 35,
- 0,
- 575,
- 574,
- 1,
- 0,
- 0,
- 0,
- 576,
- 577,
- 1,
- 0,
- 0,
- 0,
- 577,
- 575,
- 1,
- 0,
- 0,
- 0,
- 577,
- 578,
- 1,
- 0,
- 0,
- 0,
- 578,
- 579,
- 1,
- 0,
- 0,
- 0,
- 579,
- 580,
- 5,
- 95,
- 0,
- 0,
- 580,
- 583,
- 1,
- 0,
- 0,
- 0,
- 581,
- 583,
- 5,
- 79,
- 0,
- 0,
- 582,
- 571,
- 1,
- 0,
- 0,
- 0,
- 582,
- 581,
- 1,
- 0,
- 0,
- 0,
- 583,
- 81,
- 1,
- 0,
- 0,
- 0,
- 584,
- 585,
- 5,
- 93,
- 0,
- 0,
- 585,
- 83,
- 1,
- 0,
- 0,
- 0,
- 586,
- 589,
- 3,
- 86,
- 43,
- 0,
- 587,
- 589,
- 3,
- 88,
- 44,
- 0,
- 588,
- 586,
- 1,
- 0,
- 0,
- 0,
- 588,
- 587,
- 1,
- 0,
- 0,
- 0,
- 589,
- 85,
- 1,
- 0,
- 0,
- 0,
- 590,
- 591,
- 5,
- 20,
- 0,
- 0,
- 591,
- 592,
- 3,
- 40,
- 20,
- 0,
- 592,
- 593,
- 5,
- 9,
- 0,
- 0,
- 593,
- 594,
- 5,
- 80,
- 0,
- 0,
- 594,
- 599,
- 3,
- 36,
- 18,
- 0,
- 595,
- 596,
- 5,
- 8,
- 0,
- 0,
- 596,
- 598,
- 3,
- 36,
- 18,
- 0,
- 597,
- 595,
- 1,
- 0,
- 0,
- 0,
- 598,
- 601,
- 1,
- 0,
- 0,
- 0,
- 599,
- 597,
- 1,
- 0,
- 0,
- 0,
- 599,
- 600,
- 1,
- 0,
- 0,
- 0,
- 600,
- 602,
- 1,
- 0,
- 0,
- 0,
- 601,
- 599,
- 1,
- 0,
- 0,
- 0,
- 602,
- 603,
- 5,
- 81,
- 0,
- 0,
- 603,
- 604,
- 5,
- 79,
- 0,
- 0,
- 604,
- 87,
- 1,
- 0,
- 0,
- 0,
- 605,
- 606,
- 5,
- 20,
- 0,
- 0,
- 606,
- 607,
- 3,
- 90,
- 45,
- 0,
- 607,
- 608,
- 5,
- 9,
- 0,
- 0,
- 608,
- 609,
- 5,
- 79,
- 0,
- 0,
- 609,
- 611,
- 5,
- 94,
- 0,
- 0,
- 610,
- 612,
- 3,
- 92,
- 46,
- 0,
- 611,
- 610,
- 1,
- 0,
- 0,
- 0,
- 612,
- 613,
- 1,
- 0,
- 0,
- 0,
- 613,
- 611,
- 1,
- 0,
- 0,
- 0,
- 613,
- 614,
- 1,
- 0,
- 0,
- 0,
- 614,
- 615,
- 1,
- 0,
- 0,
- 0,
- 615,
- 616,
- 5,
- 95,
- 0,
- 0,
- 616,
- 89,
- 1,
- 0,
- 0,
- 0,
- 617,
- 620,
- 3,
- 106,
- 53,
- 0,
- 618,
- 620,
- 3,
- 72,
- 36,
- 0,
- 619,
- 617,
- 1,
- 0,
- 0,
- 0,
- 619,
- 618,
- 1,
- 0,
- 0,
- 0,
- 620,
- 91,
- 1,
- 0,
- 0,
- 0,
- 621,
- 626,
- 3,
- 52,
- 26,
- 0,
- 622,
- 626,
- 3,
- 62,
- 31,
- 0,
- 623,
- 626,
- 3,
- 70,
- 35,
- 0,
- 624,
- 626,
- 3,
- 166,
- 83,
- 0,
- 625,
- 621,
- 1,
- 0,
- 0,
- 0,
- 625,
- 622,
- 1,
- 0,
- 0,
- 0,
- 625,
- 623,
- 1,
- 0,
- 0,
- 0,
- 625,
- 624,
- 1,
- 0,
- 0,
- 0,
- 626,
- 93,
- 1,
- 0,
- 0,
- 0,
- 627,
- 628,
- 5,
- 21,
- 0,
- 0,
- 628,
- 633,
- 3,
- 54,
- 27,
- 0,
- 629,
- 630,
- 5,
- 8,
- 0,
- 0,
- 630,
- 632,
- 3,
- 54,
- 27,
- 0,
- 631,
- 629,
- 1,
- 0,
- 0,
- 0,
- 632,
- 635,
- 1,
- 0,
- 0,
- 0,
- 633,
- 631,
- 1,
- 0,
- 0,
- 0,
- 633,
- 634,
- 1,
- 0,
- 0,
- 0,
- 634,
- 636,
- 1,
- 0,
- 0,
- 0,
- 635,
- 633,
- 1,
- 0,
- 0,
- 0,
- 636,
- 637,
- 5,
- 9,
- 0,
- 0,
- 637,
- 640,
- 3,
- 96,
- 48,
- 0,
- 638,
- 639,
- 5,
- 11,
- 0,
- 0,
- 639,
- 641,
- 3,
- 144,
- 72,
- 0,
- 640,
- 638,
- 1,
- 0,
- 0,
- 0,
- 640,
- 641,
- 1,
- 0,
- 0,
- 0,
- 641,
- 644,
- 1,
- 0,
- 0,
- 0,
- 642,
- 645,
- 3,
- 146,
- 73,
- 0,
- 643,
- 645,
- 5,
- 79,
- 0,
- 0,
- 644,
- 642,
- 1,
- 0,
- 0,
- 0,
- 644,
- 643,
- 1,
- 0,
- 0,
- 0,
- 645,
- 95,
- 1,
- 0,
- 0,
- 0,
- 646,
- 649,
- 3,
- 98,
- 49,
- 0,
- 647,
- 649,
- 3,
- 100,
- 50,
- 0,
- 648,
- 646,
- 1,
- 0,
- 0,
- 0,
- 648,
- 647,
- 1,
- 0,
- 0,
- 0,
- 649,
- 97,
- 1,
- 0,
- 0,
- 0,
- 650,
- 654,
- 3,
- 104,
- 52,
- 0,
- 651,
- 654,
- 3,
- 106,
- 53,
- 0,
- 652,
- 654,
- 3,
- 72,
- 36,
- 0,
- 653,
- 650,
- 1,
- 0,
- 0,
- 0,
- 653,
- 651,
- 1,
- 0,
- 0,
- 0,
- 653,
- 652,
- 1,
- 0,
- 0,
- 0,
- 654,
- 99,
- 1,
- 0,
- 0,
- 0,
- 655,
- 656,
- 3,
- 102,
- 51,
- 0,
- 656,
- 101,
- 1,
- 0,
- 0,
- 0,
- 657,
- 658,
- 5,
- 22,
- 0,
- 0,
- 658,
- 659,
- 5,
- 7,
- 0,
- 0,
- 659,
- 660,
- 3,
- 98,
- 49,
- 0,
- 660,
- 103,
- 1,
- 0,
- 0,
- 0,
- 661,
- 662,
- 7,
- 1,
- 0,
- 0,
- 662,
- 105,
- 1,
- 0,
- 0,
- 0,
- 663,
- 664,
- 5,
- 93,
- 0,
- 0,
- 664,
- 107,
- 1,
- 0,
- 0,
- 0,
- 665,
- 666,
- 5,
- 28,
- 0,
- 0,
- 666,
- 671,
- 3,
- 118,
- 59,
- 0,
- 667,
- 668,
- 5,
- 82,
- 0,
- 0,
- 668,
- 669,
- 3,
- 260,
- 130,
- 0,
- 669,
- 670,
- 5,
- 83,
- 0,
- 0,
- 670,
- 672,
- 1,
- 0,
- 0,
- 0,
- 671,
- 667,
- 1,
- 0,
- 0,
- 0,
- 671,
- 672,
- 1,
- 0,
- 0,
- 0,
- 672,
- 675,
- 1,
- 0,
- 0,
- 0,
- 673,
- 674,
- 5,
- 4,
- 0,
- 0,
- 674,
- 676,
- 3,
- 110,
- 55,
- 0,
- 675,
- 673,
- 1,
- 0,
- 0,
- 0,
- 675,
- 676,
- 1,
- 0,
- 0,
- 0,
- 676,
- 677,
- 1,
- 0,
- 0,
- 0,
- 677,
- 678,
- 5,
- 79,
- 0,
- 0,
- 678,
- 109,
- 1,
- 0,
- 0,
- 0,
- 679,
- 685,
- 3,
- 112,
- 56,
- 0,
- 680,
- 682,
- 3,
- 114,
- 57,
- 0,
- 681,
- 680,
- 1,
- 0,
- 0,
- 0,
- 681,
- 682,
- 1,
- 0,
- 0,
- 0,
- 682,
- 683,
- 1,
- 0,
- 0,
- 0,
- 683,
- 684,
- 5,
- 29,
- 0,
- 0,
- 684,
- 686,
- 3,
- 122,
- 61,
- 0,
- 685,
- 681,
- 1,
- 0,
- 0,
- 0,
- 685,
- 686,
- 1,
- 0,
- 0,
- 0,
- 686,
- 689,
- 1,
- 0,
- 0,
- 0,
- 687,
- 689,
- 3,
- 122,
- 61,
- 0,
- 688,
- 679,
- 1,
- 0,
- 0,
- 0,
- 688,
- 687,
- 1,
- 0,
- 0,
- 0,
- 689,
- 111,
- 1,
- 0,
- 0,
- 0,
- 690,
- 691,
- 5,
- 30,
- 0,
- 0,
- 691,
- 692,
- 3,
- 120,
- 60,
- 0,
- 692,
- 113,
- 1,
- 0,
- 0,
- 0,
- 693,
- 694,
- 5,
- 31,
- 0,
- 0,
- 694,
- 695,
- 3,
- 116,
- 58,
- 0,
- 695,
- 115,
- 1,
- 0,
- 0,
- 0,
- 696,
- 697,
- 5,
- 93,
- 0,
- 0,
- 697,
- 117,
- 1,
- 0,
- 0,
- 0,
- 698,
- 699,
- 5,
- 93,
- 0,
- 0,
- 699,
- 119,
- 1,
- 0,
- 0,
- 0,
- 700,
- 701,
- 3,
- 220,
- 110,
- 0,
- 701,
- 702,
- 5,
- 2,
- 0,
- 0,
- 702,
- 704,
- 1,
- 0,
- 0,
- 0,
- 703,
- 700,
- 1,
- 0,
- 0,
- 0,
- 703,
- 704,
- 1,
- 0,
- 0,
- 0,
- 704,
- 705,
- 1,
- 0,
- 0,
- 0,
- 705,
- 706,
- 3,
- 118,
- 59,
- 0,
- 706,
- 121,
- 1,
- 0,
- 0,
- 0,
- 707,
- 713,
- 3,
- 132,
- 66,
- 0,
- 708,
- 713,
- 3,
- 124,
- 62,
- 0,
- 709,
- 713,
- 3,
- 126,
- 63,
- 0,
- 710,
- 713,
- 3,
- 128,
- 64,
- 0,
- 711,
- 713,
- 3,
- 130,
- 65,
- 0,
- 712,
- 707,
- 1,
- 0,
- 0,
- 0,
- 712,
- 708,
- 1,
- 0,
- 0,
- 0,
- 712,
- 709,
- 1,
- 0,
- 0,
- 0,
- 712,
- 710,
- 1,
- 0,
- 0,
- 0,
- 712,
- 711,
- 1,
- 0,
- 0,
- 0,
- 713,
- 123,
- 1,
- 0,
- 0,
- 0,
- 714,
- 715,
- 5,
- 32,
- 0,
- 0,
- 715,
- 716,
- 5,
- 82,
- 0,
- 0,
- 716,
- 717,
- 3,
- 132,
- 66,
- 0,
- 717,
- 718,
- 5,
- 83,
- 0,
- 0,
- 718,
- 125,
- 1,
- 0,
- 0,
- 0,
- 719,
- 720,
- 5,
- 33,
- 0,
- 0,
- 720,
- 721,
- 5,
- 82,
- 0,
- 0,
- 721,
- 722,
- 3,
- 132,
- 66,
- 0,
- 722,
- 723,
- 5,
- 83,
- 0,
- 0,
- 723,
- 127,
- 1,
- 0,
- 0,
- 0,
- 724,
- 725,
- 5,
- 34,
- 0,
- 0,
- 725,
- 726,
- 5,
- 82,
- 0,
- 0,
- 726,
- 727,
- 3,
- 134,
- 67,
- 0,
- 727,
- 728,
- 5,
- 83,
- 0,
- 0,
- 728,
- 129,
- 1,
- 0,
- 0,
- 0,
- 729,
- 730,
- 5,
- 35,
- 0,
- 0,
- 730,
- 731,
- 5,
- 82,
- 0,
- 0,
- 731,
- 737,
- 3,
- 134,
- 67,
- 0,
- 732,
- 733,
- 5,
- 8,
- 0,
- 0,
- 733,
- 734,
- 5,
- 93,
- 0,
- 0,
- 734,
- 735,
- 6,
- 65,
- -1,
- 0,
- 735,
- 736,
- 5,
- 9,
- 0,
- 0,
- 736,
- 738,
- 3,
- 134,
- 67,
- 0,
- 737,
- 732,
- 1,
- 0,
- 0,
- 0,
- 737,
- 738,
- 1,
- 0,
- 0,
- 0,
- 738,
- 739,
- 1,
- 0,
- 0,
- 0,
- 739,
- 740,
- 5,
- 83,
- 0,
- 0,
- 740,
- 131,
- 1,
- 0,
- 0,
- 0,
- 741,
- 742,
- 3,
- 220,
- 110,
- 0,
- 742,
- 133,
- 1,
- 0,
- 0,
- 0,
- 743,
- 744,
- 3,
- 220,
- 110,
- 0,
- 744,
- 135,
- 1,
- 0,
- 0,
- 0,
- 745,
- 748,
- 3,
- 138,
- 69,
- 0,
- 746,
- 748,
- 3,
- 140,
- 70,
- 0,
- 747,
- 745,
- 1,
- 0,
- 0,
- 0,
- 747,
- 746,
- 1,
- 0,
- 0,
- 0,
- 748,
- 137,
- 1,
- 0,
- 0,
- 0,
- 749,
- 754,
- 3,
- 54,
- 27,
- 0,
- 750,
- 751,
- 5,
- 8,
- 0,
- 0,
- 751,
- 753,
- 3,
- 54,
- 27,
- 0,
- 752,
- 750,
- 1,
- 0,
- 0,
- 0,
- 753,
- 756,
- 1,
- 0,
- 0,
- 0,
- 754,
- 752,
- 1,
- 0,
- 0,
- 0,
- 754,
- 755,
- 1,
- 0,
- 0,
- 0,
- 755,
- 757,
- 1,
- 0,
- 0,
- 0,
- 756,
- 754,
- 1,
- 0,
- 0,
- 0,
- 757,
- 758,
- 5,
- 9,
- 0,
- 0,
- 758,
- 761,
- 3,
- 96,
- 48,
- 0,
- 759,
- 760,
- 5,
- 11,
- 0,
- 0,
- 760,
- 762,
- 3,
- 144,
- 72,
- 0,
- 761,
- 759,
- 1,
- 0,
- 0,
- 0,
- 761,
- 762,
- 1,
- 0,
- 0,
- 0,
- 762,
- 765,
- 1,
- 0,
- 0,
- 0,
- 763,
- 766,
- 3,
- 146,
- 73,
- 0,
- 764,
- 766,
- 5,
- 79,
- 0,
- 0,
- 765,
- 763,
- 1,
- 0,
- 0,
- 0,
- 765,
- 764,
- 1,
- 0,
- 0,
- 0,
- 766,
- 139,
- 1,
- 0,
- 0,
- 0,
- 767,
- 768,
- 5,
- 36,
- 0,
- 0,
- 768,
- 773,
- 3,
- 54,
- 27,
- 0,
- 769,
- 770,
- 5,
- 8,
- 0,
- 0,
- 770,
- 772,
- 3,
- 54,
- 27,
- 0,
- 771,
- 769,
- 1,
- 0,
- 0,
- 0,
- 772,
- 775,
- 1,
- 0,
- 0,
- 0,
- 773,
- 771,
- 1,
- 0,
- 0,
- 0,
- 773,
- 774,
- 1,
- 0,
- 0,
- 0,
- 774,
- 776,
- 1,
- 0,
- 0,
- 0,
- 775,
- 773,
- 1,
- 0,
- 0,
- 0,
- 776,
- 777,
- 5,
- 9,
- 0,
- 0,
- 777,
- 783,
- 3,
- 96,
- 48,
- 0,
- 778,
- 781,
- 5,
- 11,
- 0,
- 0,
- 779,
- 782,
- 3,
- 142,
- 71,
- 0,
- 780,
- 782,
- 3,
- 252,
- 126,
- 0,
- 781,
- 779,
- 1,
- 0,
- 0,
- 0,
- 781,
- 780,
- 1,
- 0,
- 0,
- 0,
- 782,
- 784,
- 1,
- 0,
- 0,
- 0,
- 783,
- 778,
- 1,
- 0,
- 0,
- 0,
- 783,
- 784,
- 1,
- 0,
- 0,
- 0,
- 784,
- 785,
- 1,
- 0,
- 0,
- 0,
- 785,
- 786,
- 5,
- 79,
- 0,
- 0,
- 786,
- 141,
- 1,
- 0,
- 0,
- 0,
- 787,
- 788,
- 5,
- 37,
- 0,
- 0,
- 788,
- 789,
- 5,
- 82,
- 0,
- 0,
- 789,
- 790,
- 3,
- 220,
- 110,
- 0,
- 790,
- 791,
- 5,
- 8,
- 0,
- 0,
- 791,
- 794,
- 3,
- 110,
- 55,
- 0,
- 792,
- 793,
- 5,
- 8,
- 0,
- 0,
- 793,
- 795,
- 3,
- 144,
- 72,
- 0,
- 794,
- 792,
- 1,
- 0,
- 0,
- 0,
- 794,
- 795,
- 1,
- 0,
- 0,
- 0,
- 795,
- 796,
- 1,
- 0,
- 0,
- 0,
- 796,
- 797,
- 5,
- 83,
- 0,
- 0,
- 797,
- 143,
- 1,
- 0,
- 0,
- 0,
- 798,
- 799,
- 3,
- 220,
- 110,
- 0,
- 799,
- 145,
- 1,
- 0,
- 0,
- 0,
- 800,
- 801,
- 5,
- 38,
- 0,
- 0,
- 801,
- 802,
- 5,
- 9,
- 0,
- 0,
- 802,
- 803,
- 5,
- 79,
- 0,
- 0,
- 803,
- 805,
- 5,
- 94,
- 0,
- 0,
- 804,
- 806,
- 3,
- 148,
- 74,
- 0,
- 805,
- 804,
- 1,
- 0,
- 0,
- 0,
- 806,
- 807,
- 1,
- 0,
- 0,
- 0,
- 807,
- 805,
- 1,
- 0,
- 0,
- 0,
- 807,
- 808,
- 1,
- 0,
- 0,
- 0,
- 808,
- 809,
- 1,
- 0,
- 0,
- 0,
- 809,
- 810,
- 5,
- 95,
- 0,
- 0,
- 810,
- 147,
- 1,
- 0,
- 0,
- 0,
- 811,
- 814,
- 3,
- 150,
- 75,
- 0,
- 812,
- 814,
- 3,
- 210,
- 105,
- 0,
- 813,
- 811,
- 1,
- 0,
- 0,
- 0,
- 813,
- 812,
- 1,
- 0,
- 0,
- 0,
- 814,
- 149,
- 1,
- 0,
- 0,
- 0,
- 815,
- 818,
- 3,
- 152,
- 76,
- 0,
- 816,
- 818,
- 3,
- 158,
- 79,
- 0,
- 817,
- 815,
- 1,
- 0,
- 0,
- 0,
- 817,
- 816,
- 1,
- 0,
- 0,
- 0,
- 818,
- 151,
- 1,
- 0,
- 0,
- 0,
- 819,
- 820,
- 5,
- 39,
- 0,
- 0,
- 820,
- 822,
- 5,
- 82,
- 0,
- 0,
- 821,
- 823,
- 3,
- 154,
- 77,
- 0,
- 822,
- 821,
- 1,
- 0,
- 0,
- 0,
- 822,
- 823,
- 1,
- 0,
- 0,
- 0,
- 823,
- 824,
- 1,
- 0,
- 0,
- 0,
- 824,
- 825,
- 3,
- 156,
- 78,
- 0,
- 825,
- 826,
- 5,
- 83,
- 0,
- 0,
- 826,
- 827,
- 5,
- 79,
- 0,
- 0,
- 827,
- 153,
- 1,
- 0,
- 0,
- 0,
- 828,
- 829,
- 7,
- 2,
- 0,
- 0,
- 829,
- 155,
- 1,
- 0,
- 0,
- 0,
- 830,
- 831,
- 3,
- 220,
- 110,
- 0,
- 831,
- 157,
- 1,
- 0,
- 0,
- 0,
- 832,
- 833,
- 5,
- 42,
- 0,
- 0,
- 833,
- 834,
- 5,
- 82,
- 0,
- 0,
- 834,
- 835,
- 3,
- 160,
- 80,
- 0,
- 835,
- 836,
- 5,
- 83,
- 0,
- 0,
- 836,
- 837,
- 5,
- 79,
- 0,
- 0,
- 837,
- 159,
- 1,
- 0,
- 0,
- 0,
- 838,
- 841,
- 3,
- 54,
- 27,
- 0,
- 839,
- 841,
- 3,
- 248,
- 124,
- 0,
- 840,
- 838,
- 1,
- 0,
- 0,
- 0,
- 840,
- 839,
- 1,
- 0,
- 0,
- 0,
- 841,
- 161,
- 1,
- 0,
- 0,
- 0,
- 842,
- 845,
- 3,
- 164,
- 82,
- 0,
- 843,
- 845,
- 3,
- 188,
- 94,
- 0,
- 844,
- 842,
- 1,
- 0,
- 0,
- 0,
- 844,
- 843,
- 1,
- 0,
- 0,
- 0,
- 845,
- 846,
- 1,
- 0,
- 0,
- 0,
- 846,
- 847,
- 5,
- 2,
- 0,
- 0,
- 847,
- 849,
- 1,
- 0,
- 0,
- 0,
- 848,
- 844,
- 1,
- 0,
- 0,
- 0,
- 848,
- 849,
- 1,
- 0,
- 0,
- 0,
- 849,
- 850,
- 1,
- 0,
- 0,
- 0,
- 850,
- 851,
- 3,
- 82,
- 41,
- 0,
- 851,
- 853,
- 5,
- 82,
- 0,
- 0,
- 852,
- 854,
- 3,
- 266,
- 133,
- 0,
- 853,
- 852,
- 1,
- 0,
- 0,
- 0,
- 853,
- 854,
- 1,
- 0,
- 0,
- 0,
- 854,
- 855,
- 1,
- 0,
- 0,
- 0,
- 855,
- 856,
- 5,
- 83,
- 0,
- 0,
- 856,
- 857,
- 5,
- 79,
- 0,
- 0,
- 857,
- 163,
- 1,
- 0,
- 0,
- 0,
- 858,
- 859,
- 3,
- 188,
- 94,
- 0,
- 859,
- 860,
- 5,
- 2,
- 0,
- 0,
- 860,
- 861,
- 1,
- 0,
- 0,
- 0,
- 861,
- 862,
- 3,
- 74,
- 37,
- 0,
- 862,
- 165,
- 1,
- 0,
- 0,
- 0,
- 863,
- 866,
- 3,
- 168,
- 84,
- 0,
- 864,
- 866,
- 3,
- 172,
- 86,
- 0,
- 865,
- 863,
- 1,
- 0,
- 0,
- 0,
- 865,
- 864,
- 1,
- 0,
- 0,
- 0,
- 866,
- 167,
- 1,
- 0,
- 0,
- 0,
- 867,
- 868,
- 5,
- 43,
- 0,
- 0,
- 868,
- 869,
- 3,
- 110,
- 55,
- 0,
- 869,
- 870,
- 5,
- 9,
- 0,
- 0,
- 870,
- 871,
- 5,
- 79,
- 0,
- 0,
- 871,
- 873,
- 5,
- 94,
- 0,
- 0,
- 872,
- 874,
- 3,
- 170,
- 85,
- 0,
- 873,
- 872,
- 1,
- 0,
- 0,
- 0,
- 874,
- 875,
- 1,
- 0,
- 0,
- 0,
- 875,
- 873,
- 1,
- 0,
- 0,
- 0,
- 875,
- 876,
- 1,
- 0,
- 0,
- 0,
- 876,
- 877,
- 1,
- 0,
- 0,
- 0,
- 877,
- 878,
- 5,
- 95,
- 0,
- 0,
- 878,
- 169,
- 1,
- 0,
- 0,
- 0,
- 879,
- 882,
- 3,
- 194,
- 97,
- 0,
- 880,
- 882,
- 3,
- 192,
- 96,
- 0,
- 881,
- 879,
- 1,
- 0,
- 0,
- 0,
- 881,
- 880,
- 1,
- 0,
- 0,
- 0,
- 882,
- 171,
- 1,
- 0,
- 0,
- 0,
- 883,
- 884,
- 5,
- 44,
- 0,
- 0,
- 884,
- 885,
- 3,
- 174,
- 87,
- 0,
- 885,
- 173,
- 1,
- 0,
- 0,
- 0,
- 886,
- 887,
- 3,
- 186,
- 93,
- 0,
- 887,
- 888,
- 5,
- 9,
- 0,
- 0,
- 888,
- 890,
- 1,
- 0,
- 0,
- 0,
- 889,
- 886,
- 1,
- 0,
- 0,
- 0,
- 889,
- 890,
- 1,
- 0,
- 0,
- 0,
- 890,
- 896,
- 1,
- 0,
- 0,
- 0,
- 891,
- 897,
- 3,
- 176,
- 88,
- 0,
- 892,
- 897,
- 3,
- 180,
- 90,
- 0,
- 893,
- 897,
- 3,
- 190,
- 95,
- 0,
- 894,
- 897,
- 3,
- 192,
- 96,
- 0,
- 895,
- 897,
- 3,
- 194,
- 97,
- 0,
- 896,
- 891,
- 1,
- 0,
- 0,
- 0,
- 896,
- 892,
- 1,
- 0,
- 0,
- 0,
- 896,
- 893,
- 1,
- 0,
- 0,
- 0,
- 896,
- 894,
- 1,
- 0,
- 0,
- 0,
- 896,
- 895,
- 1,
- 0,
- 0,
- 0,
- 897,
- 175,
- 1,
- 0,
- 0,
- 0,
- 898,
- 904,
- 3,
- 178,
- 89,
- 0,
- 899,
- 901,
- 5,
- 82,
- 0,
- 0,
- 900,
- 902,
- 3,
- 266,
- 133,
- 0,
- 901,
- 900,
- 1,
- 0,
- 0,
- 0,
- 901,
- 902,
- 1,
- 0,
- 0,
- 0,
- 902,
- 903,
- 1,
- 0,
- 0,
- 0,
- 903,
- 905,
- 5,
- 83,
- 0,
- 0,
- 904,
- 899,
- 1,
- 0,
- 0,
- 0,
- 904,
- 905,
- 1,
- 0,
- 0,
- 0,
- 905,
- 906,
- 1,
- 0,
- 0,
- 0,
- 906,
- 907,
- 5,
- 9,
- 0,
- 0,
- 907,
- 908,
- 5,
- 79,
- 0,
- 0,
- 908,
- 910,
- 5,
- 94,
- 0,
- 0,
- 909,
- 911,
- 3,
- 174,
- 87,
- 0,
- 910,
- 909,
- 1,
- 0,
- 0,
- 0,
- 911,
- 912,
- 1,
- 0,
- 0,
- 0,
- 912,
- 910,
- 1,
- 0,
- 0,
- 0,
- 912,
- 913,
- 1,
- 0,
- 0,
- 0,
- 913,
- 914,
- 1,
- 0,
- 0,
- 0,
- 914,
- 916,
- 5,
- 95,
- 0,
- 0,
- 915,
- 917,
- 3,
- 182,
- 91,
- 0,
- 916,
- 915,
- 1,
- 0,
- 0,
- 0,
- 916,
- 917,
- 1,
- 0,
- 0,
- 0,
- 917,
- 177,
- 1,
- 0,
- 0,
- 0,
- 918,
- 919,
- 7,
- 3,
- 0,
- 0,
- 919,
- 179,
- 1,
- 0,
- 0,
- 0,
- 920,
- 921,
- 3,
- 188,
- 94,
- 0,
- 921,
- 922,
- 5,
- 2,
- 0,
- 0,
- 922,
- 924,
- 1,
- 0,
- 0,
- 0,
- 923,
- 920,
- 1,
- 0,
- 0,
- 0,
- 923,
- 924,
- 1,
- 0,
- 0,
- 0,
- 924,
- 925,
- 1,
- 0,
- 0,
- 0,
- 925,
- 926,
- 3,
- 74,
- 37,
- 0,
- 926,
- 928,
- 5,
- 82,
- 0,
- 0,
- 927,
- 929,
- 3,
- 266,
- 133,
- 0,
- 928,
- 927,
- 1,
- 0,
- 0,
- 0,
- 928,
- 929,
- 1,
- 0,
- 0,
- 0,
- 929,
- 930,
- 1,
- 0,
- 0,
- 0,
- 930,
- 933,
- 5,
- 83,
- 0,
- 0,
- 931,
- 934,
- 3,
- 182,
- 91,
- 0,
- 932,
- 934,
- 5,
- 79,
- 0,
- 0,
- 933,
- 931,
- 1,
- 0,
- 0,
- 0,
- 933,
- 932,
- 1,
- 0,
- 0,
- 0,
- 934,
- 181,
- 1,
- 0,
- 0,
- 0,
- 935,
- 936,
- 5,
- 38,
- 0,
- 0,
- 936,
- 937,
- 5,
- 9,
- 0,
- 0,
- 937,
- 938,
- 5,
- 79,
- 0,
- 0,
- 938,
- 940,
- 5,
- 94,
- 0,
- 0,
- 939,
- 941,
- 3,
- 184,
- 92,
- 0,
- 940,
- 939,
- 1,
- 0,
- 0,
- 0,
- 941,
- 942,
- 1,
- 0,
- 0,
- 0,
- 942,
- 940,
- 1,
- 0,
- 0,
- 0,
- 942,
- 943,
- 1,
- 0,
- 0,
- 0,
- 943,
- 944,
- 1,
- 0,
- 0,
- 0,
- 944,
- 945,
- 5,
- 95,
- 0,
- 0,
- 945,
- 183,
- 1,
- 0,
- 0,
- 0,
- 946,
- 950,
- 3,
- 150,
- 75,
- 0,
- 947,
- 950,
- 3,
- 162,
- 81,
- 0,
- 948,
- 950,
- 3,
- 196,
- 98,
- 0,
- 949,
- 946,
- 1,
- 0,
- 0,
- 0,
- 949,
- 947,
- 1,
- 0,
- 0,
- 0,
- 949,
- 948,
- 1,
- 0,
- 0,
- 0,
- 950,
- 185,
- 1,
- 0,
- 0,
- 0,
- 951,
- 952,
- 5,
- 93,
- 0,
- 0,
- 952,
- 187,
- 1,
- 0,
- 0,
- 0,
- 953,
- 954,
- 3,
- 64,
- 32,
- 0,
- 954,
- 189,
- 1,
- 0,
- 0,
- 0,
- 955,
- 956,
- 5,
- 48,
- 0,
- 0,
- 956,
- 957,
- 3,
- 110,
- 55,
- 0,
- 957,
- 958,
- 5,
- 79,
- 0,
- 0,
- 958,
- 191,
- 1,
- 0,
- 0,
- 0,
- 959,
- 960,
- 5,
- 49,
- 0,
- 0,
- 960,
- 965,
- 3,
- 118,
- 59,
- 0,
- 961,
- 962,
- 5,
- 82,
- 0,
- 0,
- 962,
- 963,
- 3,
- 266,
- 133,
- 0,
- 963,
- 964,
- 5,
- 83,
- 0,
- 0,
- 964,
- 966,
- 1,
- 0,
- 0,
- 0,
- 965,
- 961,
- 1,
- 0,
- 0,
- 0,
- 965,
- 966,
- 1,
- 0,
- 0,
- 0,
- 966,
- 967,
- 1,
- 0,
- 0,
- 0,
- 967,
- 968,
- 5,
- 79,
- 0,
- 0,
- 968,
- 193,
- 1,
- 0,
- 0,
- 0,
- 969,
- 970,
- 5,
- 50,
- 0,
- 0,
- 970,
- 971,
- 3,
- 198,
- 99,
- 0,
- 971,
- 972,
- 5,
- 79,
- 0,
- 0,
- 972,
- 195,
- 1,
- 0,
- 0,
- 0,
- 973,
- 974,
- 5,
- 51,
- 0,
- 0,
- 974,
- 975,
- 3,
- 110,
- 55,
- 0,
- 975,
- 976,
- 5,
- 79,
- 0,
- 0,
- 976,
- 197,
- 1,
- 0,
- 0,
- 0,
- 977,
- 978,
- 3,
- 246,
- 123,
- 0,
- 978,
- 980,
- 5,
- 82,
- 0,
- 0,
- 979,
- 981,
- 3,
- 266,
- 133,
- 0,
- 980,
- 979,
- 1,
- 0,
- 0,
- 0,
- 980,
- 981,
- 1,
- 0,
- 0,
- 0,
- 981,
- 982,
- 1,
- 0,
- 0,
- 0,
- 982,
- 983,
- 5,
- 83,
- 0,
- 0,
- 983,
- 199,
- 1,
- 0,
- 0,
- 0,
- 984,
- 985,
- 5,
- 52,
- 0,
- 0,
- 985,
- 986,
- 3,
- 208,
- 104,
- 0,
- 986,
- 988,
- 5,
- 82,
- 0,
- 0,
- 987,
- 989,
- 3,
- 260,
- 130,
- 0,
- 988,
- 987,
- 1,
- 0,
- 0,
- 0,
- 988,
- 989,
- 1,
- 0,
- 0,
- 0,
- 989,
- 990,
- 1,
- 0,
- 0,
- 0,
- 990,
- 993,
- 5,
- 83,
- 0,
- 0,
- 991,
- 992,
- 5,
- 53,
- 0,
- 0,
- 992,
- 994,
- 3,
- 202,
- 101,
- 0,
- 993,
- 991,
- 1,
- 0,
- 0,
- 0,
- 993,
- 994,
- 1,
- 0,
- 0,
- 0,
- 994,
- 995,
- 1,
- 0,
- 0,
- 0,
- 995,
- 996,
- 3,
- 204,
- 102,
- 0,
- 996,
- 997,
- 5,
- 79,
- 0,
- 0,
- 997,
- 201,
- 1,
- 0,
- 0,
- 0,
- 998,
- 999,
- 3,
- 96,
- 48,
- 0,
- 999,
- 203,
- 1,
- 0,
- 0,
- 0,
- 1000,
- 1002,
- 5,
- 4,
- 0,
- 0,
- 1001,
- 1003,
- 3,
- 206,
- 103,
- 0,
- 1002,
- 1001,
- 1,
- 0,
- 0,
- 0,
- 1002,
- 1003,
- 1,
- 0,
- 0,
- 0,
- 1003,
- 1015,
- 1,
- 0,
- 0,
- 0,
- 1004,
- 1005,
- 5,
- 54,
- 0,
- 0,
- 1005,
- 1016,
- 3,
- 220,
- 110,
- 0,
- 1006,
- 1016,
- 5,
- 55,
- 0,
- 0,
- 1007,
- 1008,
- 5,
- 56,
- 0,
- 0,
- 1008,
- 1009,
- 3,
- 8,
- 4,
- 0,
- 1009,
- 1011,
- 5,
- 82,
- 0,
- 0,
- 1010,
- 1012,
- 3,
- 266,
- 133,
- 0,
- 1011,
- 1010,
- 1,
- 0,
- 0,
- 0,
- 1011,
- 1012,
- 1,
- 0,
- 0,
- 0,
- 1012,
- 1013,
- 1,
- 0,
- 0,
- 0,
- 1013,
- 1014,
- 5,
- 83,
- 0,
- 0,
- 1014,
- 1016,
- 1,
- 0,
- 0,
- 0,
- 1015,
- 1004,
- 1,
- 0,
- 0,
- 0,
- 1015,
- 1006,
- 1,
- 0,
- 0,
- 0,
- 1015,
- 1007,
- 1,
- 0,
- 0,
- 0,
- 1016,
- 205,
- 1,
- 0,
- 0,
- 0,
- 1017,
- 1018,
- 5,
- 57,
- 0,
- 0,
- 1018,
- 207,
- 1,
- 0,
- 0,
- 0,
- 1019,
- 1020,
- 5,
- 93,
- 0,
- 0,
- 1020,
- 209,
- 1,
- 0,
- 0,
- 0,
- 1021,
- 1024,
- 3,
- 212,
- 106,
- 0,
- 1022,
- 1024,
- 3,
- 214,
- 107,
- 0,
- 1023,
- 1021,
- 1,
- 0,
- 0,
- 0,
- 1023,
- 1022,
- 1,
- 0,
- 0,
- 0,
- 1024,
- 211,
- 1,
- 0,
- 0,
- 0,
- 1025,
- 1026,
- 5,
- 58,
- 0,
- 0,
- 1026,
- 1028,
- 5,
- 82,
- 0,
- 0,
- 1027,
- 1029,
- 3,
- 218,
- 109,
- 0,
- 1028,
- 1027,
- 1,
- 0,
- 0,
- 0,
- 1028,
- 1029,
- 1,
- 0,
- 0,
- 0,
- 1029,
- 1033,
- 1,
- 0,
- 0,
- 0,
- 1030,
- 1032,
- 3,
- 216,
- 108,
- 0,
- 1031,
- 1030,
- 1,
- 0,
- 0,
- 0,
- 1032,
- 1035,
- 1,
- 0,
- 0,
- 0,
- 1033,
- 1031,
- 1,
- 0,
- 0,
- 0,
- 1033,
- 1034,
- 1,
- 0,
- 0,
- 0,
- 1034,
- 1036,
- 1,
- 0,
- 0,
- 0,
- 1035,
- 1033,
- 1,
- 0,
- 0,
- 0,
- 1036,
- 1037,
- 5,
- 83,
- 0,
- 0,
- 1037,
- 1038,
- 5,
- 79,
- 0,
- 0,
- 1038,
- 213,
- 1,
- 0,
- 0,
- 0,
- 1039,
- 1040,
- 5,
- 59,
- 0,
- 0,
- 1040,
- 1042,
- 5,
- 82,
- 0,
- 0,
- 1041,
- 1043,
- 3,
- 218,
- 109,
- 0,
- 1042,
- 1041,
- 1,
- 0,
- 0,
- 0,
- 1042,
- 1043,
- 1,
- 0,
- 0,
- 0,
- 1043,
- 1047,
- 1,
- 0,
- 0,
- 0,
- 1044,
- 1046,
- 3,
- 216,
- 108,
- 0,
- 1045,
- 1044,
- 1,
- 0,
- 0,
- 0,
- 1046,
- 1049,
- 1,
- 0,
- 0,
- 0,
- 1047,
- 1045,
- 1,
- 0,
- 0,
- 0,
- 1047,
- 1048,
- 1,
- 0,
- 0,
- 0,
- 1048,
- 1050,
- 1,
- 0,
- 0,
- 0,
- 1049,
- 1047,
- 1,
- 0,
- 0,
- 0,
- 1050,
- 1051,
- 5,
- 83,
- 0,
- 0,
- 1051,
- 1052,
- 5,
- 79,
- 0,
- 0,
- 1052,
- 215,
- 1,
- 0,
- 0,
- 0,
- 1053,
- 1054,
- 5,
- 8,
- 0,
- 0,
- 1054,
- 1055,
- 5,
- 54,
- 0,
- 0,
- 1055,
- 1056,
- 5,
- 9,
- 0,
- 0,
- 1056,
- 1076,
- 3,
- 220,
- 110,
- 0,
- 1057,
- 1058,
- 5,
- 8,
- 0,
- 0,
- 1058,
- 1059,
- 5,
- 6,
- 0,
- 0,
- 1059,
- 1060,
- 5,
- 9,
- 0,
- 0,
- 1060,
- 1076,
- 5,
- 93,
- 0,
- 0,
- 1061,
- 1062,
- 5,
- 8,
- 0,
- 0,
- 1062,
- 1063,
- 5,
- 60,
- 0,
- 0,
- 1063,
- 1064,
- 5,
- 9,
- 0,
- 0,
- 1064,
- 1076,
- 3,
- 256,
- 128,
- 0,
- 1065,
- 1066,
- 5,
- 8,
- 0,
- 0,
- 1066,
- 1067,
- 5,
- 35,
- 0,
- 0,
- 1067,
- 1068,
- 5,
- 9,
- 0,
- 0,
- 1068,
- 1076,
- 3,
- 252,
- 126,
- 0,
- 1069,
- 1070,
- 5,
- 8,
- 0,
- 0,
- 1070,
- 1071,
- 5,
- 28,
- 0,
- 0,
- 1071,
- 1072,
- 5,
- 9,
- 0,
- 0,
- 1072,
- 1076,
- 3,
- 118,
- 59,
- 0,
- 1073,
- 1074,
- 5,
- 8,
- 0,
- 0,
- 1074,
- 1076,
- 3,
- 270,
- 135,
- 0,
- 1075,
- 1053,
- 1,
- 0,
- 0,
- 0,
- 1075,
- 1057,
- 1,
- 0,
- 0,
- 0,
- 1075,
- 1061,
- 1,
- 0,
- 0,
- 0,
- 1075,
- 1065,
- 1,
- 0,
- 0,
- 0,
- 1075,
- 1069,
- 1,
- 0,
- 0,
- 0,
- 1075,
- 1073,
- 1,
- 0,
- 0,
- 0,
- 1076,
- 217,
- 1,
- 0,
- 0,
- 0,
- 1077,
- 1078,
- 5,
- 93,
- 0,
- 0,
- 1078,
- 219,
- 1,
- 0,
- 0,
- 0,
- 1079,
- 1082,
- 3,
- 224,
- 112,
- 0,
- 1080,
- 1082,
- 3,
- 222,
- 111,
- 0,
- 1081,
- 1079,
- 1,
- 0,
- 0,
- 0,
- 1081,
- 1080,
- 1,
- 0,
- 0,
- 0,
- 1082,
- 221,
- 1,
- 0,
- 0,
- 0,
- 1083,
- 1084,
- 3,
- 224,
- 112,
- 0,
- 1084,
- 1085,
- 5,
- 61,
- 0,
- 0,
- 1085,
- 1086,
- 3,
- 220,
- 110,
- 0,
- 1086,
- 1087,
- 5,
- 9,
- 0,
- 0,
- 1087,
- 1088,
- 3,
- 220,
- 110,
- 0,
- 1088,
- 223,
- 1,
- 0,
- 0,
- 0,
- 1089,
- 1094,
- 3,
- 226,
- 113,
- 0,
- 1090,
- 1091,
- 5,
- 62,
- 0,
- 0,
- 1091,
- 1093,
- 3,
- 226,
- 113,
- 0,
- 1092,
- 1090,
- 1,
- 0,
- 0,
- 0,
- 1093,
- 1096,
- 1,
- 0,
- 0,
- 0,
- 1094,
- 1092,
- 1,
- 0,
- 0,
- 0,
- 1094,
- 1095,
- 1,
- 0,
- 0,
- 0,
- 1095,
- 225,
- 1,
- 0,
- 0,
- 0,
- 1096,
- 1094,
- 1,
- 0,
- 0,
- 0,
- 1097,
- 1102,
- 3,
- 228,
- 114,
- 0,
- 1098,
- 1099,
- 5,
- 63,
- 0,
- 0,
- 1099,
- 1101,
- 3,
- 228,
- 114,
- 0,
- 1100,
- 1098,
- 1,
- 0,
- 0,
- 0,
- 1101,
- 1104,
- 1,
- 0,
- 0,
- 0,
- 1102,
- 1100,
- 1,
- 0,
- 0,
- 0,
- 1102,
- 1103,
- 1,
- 0,
- 0,
- 0,
- 1103,
- 227,
- 1,
- 0,
- 0,
- 0,
- 1104,
- 1102,
- 1,
- 0,
- 0,
- 0,
- 1105,
- 1110,
- 3,
- 230,
- 115,
- 0,
- 1106,
- 1107,
- 5,
- 64,
- 0,
- 0,
- 1107,
- 1109,
- 3,
- 230,
- 115,
- 0,
- 1108,
- 1106,
- 1,
- 0,
- 0,
- 0,
- 1109,
- 1112,
- 1,
- 0,
- 0,
- 0,
- 1110,
- 1108,
- 1,
- 0,
- 0,
- 0,
- 1110,
- 1111,
- 1,
- 0,
- 0,
- 0,
- 1111,
- 229,
- 1,
- 0,
- 0,
- 0,
- 1112,
- 1110,
- 1,
- 0,
- 0,
- 0,
- 1113,
- 1114,
- 5,
- 65,
- 0,
- 0,
- 1114,
- 1117,
- 3,
- 230,
- 115,
- 0,
- 1115,
- 1117,
- 3,
- 232,
- 116,
- 0,
- 1116,
- 1113,
- 1,
- 0,
- 0,
- 0,
- 1116,
- 1115,
- 1,
- 0,
- 0,
- 0,
- 1117,
- 231,
- 1,
- 0,
- 0,
- 0,
- 1118,
- 1119,
- 6,
- 116,
- -1,
- 0,
- 1119,
- 1120,
- 3,
- 236,
- 118,
- 0,
- 1120,
- 1127,
- 1,
- 0,
- 0,
- 0,
- 1121,
- 1122,
- 10,
- 1,
- 0,
- 0,
- 1122,
- 1123,
- 3,
- 234,
- 117,
- 0,
- 1123,
- 1124,
- 3,
- 236,
- 118,
- 0,
- 1124,
- 1126,
- 1,
- 0,
- 0,
- 0,
- 1125,
- 1121,
- 1,
- 0,
- 0,
- 0,
- 1126,
- 1129,
- 1,
- 0,
- 0,
- 0,
- 1127,
- 1125,
- 1,
- 0,
- 0,
- 0,
- 1127,
- 1128,
- 1,
- 0,
- 0,
- 0,
- 1128,
- 233,
- 1,
- 0,
- 0,
- 0,
- 1129,
- 1127,
- 1,
- 0,
- 0,
- 0,
- 1130,
- 1131,
- 7,
- 4,
- 0,
- 0,
- 1131,
- 235,
- 1,
- 0,
- 0,
- 0,
- 1132,
- 1133,
- 6,
- 118,
- -1,
- 0,
- 1133,
- 1134,
- 3,
- 240,
- 120,
- 0,
- 1134,
- 1141,
- 1,
- 0,
- 0,
- 0,
- 1135,
- 1136,
- 10,
- 1,
- 0,
- 0,
- 1136,
- 1137,
- 3,
- 238,
- 119,
- 0,
- 1137,
- 1138,
- 3,
- 240,
- 120,
- 0,
- 1138,
- 1140,
- 1,
- 0,
- 0,
- 0,
- 1139,
- 1135,
- 1,
- 0,
- 0,
- 0,
- 1140,
- 1143,
- 1,
- 0,
- 0,
- 0,
- 1141,
- 1139,
- 1,
- 0,
- 0,
- 0,
- 1141,
- 1142,
- 1,
- 0,
- 0,
- 0,
- 1142,
- 237,
- 1,
- 0,
- 0,
- 0,
- 1143,
- 1141,
- 1,
- 0,
- 0,
- 0,
- 1144,
- 1145,
- 7,
- 5,
- 0,
- 0,
- 1145,
- 239,
- 1,
- 0,
- 0,
- 0,
- 1146,
- 1147,
- 6,
- 120,
- -1,
- 0,
- 1147,
- 1148,
- 3,
- 244,
- 122,
- 0,
- 1148,
- 1155,
- 1,
- 0,
- 0,
- 0,
- 1149,
- 1150,
- 10,
- 1,
- 0,
- 0,
- 1150,
- 1151,
- 3,
- 242,
- 121,
- 0,
- 1151,
- 1152,
- 3,
- 244,
- 122,
- 0,
- 1152,
- 1154,
- 1,
- 0,
- 0,
- 0,
- 1153,
- 1149,
- 1,
- 0,
- 0,
- 0,
- 1154,
- 1157,
- 1,
- 0,
- 0,
- 0,
- 1155,
- 1153,
- 1,
- 0,
- 0,
- 0,
- 1155,
- 1156,
- 1,
- 0,
- 0,
- 0,
- 1156,
- 241,
- 1,
- 0,
- 0,
- 0,
- 1157,
- 1155,
- 1,
- 0,
- 0,
- 0,
- 1158,
- 1159,
- 7,
- 6,
- 0,
- 0,
- 1159,
- 243,
- 1,
- 0,
- 0,
- 0,
- 1160,
- 1164,
- 3,
- 246,
- 123,
- 0,
- 1161,
- 1162,
- 5,
- 73,
- 0,
- 0,
- 1162,
- 1164,
- 3,
- 244,
- 122,
- 0,
- 1163,
- 1160,
- 1,
- 0,
- 0,
- 0,
- 1163,
- 1161,
- 1,
- 0,
- 0,
- 0,
- 1164,
- 245,
- 1,
- 0,
- 0,
- 0,
- 1165,
- 1166,
- 6,
- 123,
- -1,
- 0,
- 1166,
- 1167,
- 3,
- 250,
- 125,
- 0,
- 1167,
- 1198,
- 1,
- 0,
- 0,
- 0,
- 1168,
- 1169,
- 10,
- 5,
- 0,
- 0,
- 1169,
- 1170,
- 5,
- 2,
- 0,
- 0,
- 1170,
- 1171,
- 5,
- 31,
- 0,
- 0,
- 1171,
- 1172,
- 5,
- 82,
- 0,
- 0,
- 1172,
- 1173,
- 3,
- 96,
- 48,
- 0,
- 1173,
- 1174,
- 5,
- 83,
- 0,
- 0,
- 1174,
- 1197,
- 1,
- 0,
- 0,
- 0,
- 1175,
- 1176,
- 10,
- 4,
- 0,
- 0,
- 1176,
- 1177,
- 5,
- 2,
- 0,
- 0,
- 1177,
- 1178,
- 5,
- 4,
- 0,
- 0,
- 1178,
- 1179,
- 5,
- 82,
- 0,
- 0,
- 1179,
- 1180,
- 3,
- 96,
- 48,
- 0,
- 1180,
- 1181,
- 5,
- 83,
- 0,
- 0,
- 1181,
- 1197,
- 1,
- 0,
- 0,
- 0,
- 1182,
- 1183,
- 10,
- 3,
- 0,
- 0,
- 1183,
- 1184,
- 5,
- 80,
- 0,
- 0,
- 1184,
- 1185,
- 3,
- 220,
- 110,
- 0,
- 1185,
- 1186,
- 5,
- 81,
- 0,
- 0,
- 1186,
- 1197,
- 1,
- 0,
- 0,
- 0,
- 1187,
- 1188,
- 10,
- 2,
- 0,
- 0,
- 1188,
- 1190,
- 5,
- 82,
- 0,
- 0,
- 1189,
- 1191,
- 3,
- 266,
- 133,
- 0,
- 1190,
- 1189,
- 1,
- 0,
- 0,
- 0,
- 1190,
- 1191,
- 1,
- 0,
- 0,
- 0,
- 1191,
- 1192,
- 1,
- 0,
- 0,
- 0,
- 1192,
- 1197,
- 5,
- 83,
- 0,
- 0,
- 1193,
- 1194,
- 10,
- 1,
- 0,
- 0,
- 1194,
- 1195,
- 5,
- 2,
- 0,
- 0,
- 1195,
- 1197,
- 3,
- 54,
- 27,
- 0,
- 1196,
- 1168,
- 1,
- 0,
- 0,
- 0,
- 1196,
- 1175,
- 1,
- 0,
- 0,
- 0,
- 1196,
- 1182,
- 1,
- 0,
- 0,
- 0,
- 1196,
- 1187,
- 1,
- 0,
- 0,
- 0,
- 1196,
- 1193,
- 1,
- 0,
- 0,
- 0,
- 1197,
- 1200,
- 1,
- 0,
- 0,
- 0,
- 1198,
- 1196,
- 1,
- 0,
- 0,
- 0,
- 1198,
- 1199,
- 1,
- 0,
- 0,
- 0,
- 1199,
- 247,
- 1,
- 0,
- 0,
- 0,
- 1200,
- 1198,
- 1,
- 0,
- 0,
- 0,
- 1201,
- 1202,
- 3,
- 246,
- 123,
- 0,
- 1202,
- 1203,
- 5,
- 2,
- 0,
- 0,
- 1203,
- 1204,
- 3,
- 54,
- 27,
- 0,
- 1204,
- 249,
- 1,
- 0,
- 0,
- 0,
- 1205,
- 1213,
- 3,
- 252,
- 126,
- 0,
- 1206,
- 1213,
- 5,
- 77,
- 0,
- 0,
- 1207,
- 1213,
- 5,
- 93,
- 0,
- 0,
- 1208,
- 1209,
- 5,
- 82,
- 0,
- 0,
- 1209,
- 1210,
- 3,
- 220,
- 110,
- 0,
- 1210,
- 1211,
- 5,
- 83,
- 0,
- 0,
- 1211,
- 1213,
- 1,
- 0,
- 0,
- 0,
- 1212,
- 1205,
- 1,
- 0,
- 0,
- 0,
- 1212,
- 1206,
- 1,
- 0,
- 0,
- 0,
- 1212,
- 1207,
- 1,
- 0,
- 0,
- 0,
- 1212,
- 1208,
- 1,
- 0,
- 0,
- 0,
- 1213,
- 251,
- 1,
- 0,
- 0,
- 0,
- 1214,
- 1224,
- 3,
- 272,
- 136,
- 0,
- 1215,
- 1224,
- 5,
- 88,
- 0,
- 0,
- 1216,
- 1224,
- 3,
- 274,
- 137,
- 0,
- 1217,
- 1224,
- 5,
- 92,
- 0,
- 0,
- 1218,
- 1224,
- 5,
- 87,
- 0,
- 0,
- 1219,
- 1224,
- 3,
- 258,
- 129,
- 0,
- 1220,
- 1224,
- 3,
- 44,
- 22,
- 0,
- 1221,
- 1224,
- 3,
- 254,
- 127,
- 0,
- 1222,
- 1224,
- 3,
- 256,
- 128,
- 0,
- 1223,
- 1214,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1215,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1216,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1217,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1218,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1219,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1220,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1221,
- 1,
- 0,
- 0,
- 0,
- 1223,
- 1222,
- 1,
- 0,
- 0,
- 0,
- 1224,
- 253,
- 1,
- 0,
- 0,
- 0,
- 1225,
- 1226,
- 5,
- 80,
- 0,
- 0,
- 1226,
- 1231,
- 3,
- 220,
- 110,
- 0,
- 1227,
- 1228,
- 5,
- 8,
- 0,
- 0,
- 1228,
- 1230,
- 3,
- 220,
- 110,
- 0,
- 1229,
- 1227,
- 1,
- 0,
- 0,
- 0,
- 1230,
- 1233,
- 1,
- 0,
- 0,
- 0,
- 1231,
- 1229,
- 1,
- 0,
- 0,
- 0,
- 1231,
- 1232,
- 1,
- 0,
- 0,
- 0,
- 1232,
- 1234,
- 1,
- 0,
- 0,
- 0,
- 1233,
- 1231,
- 1,
- 0,
- 0,
- 0,
- 1234,
- 1235,
- 5,
- 81,
- 0,
- 0,
- 1235,
- 255,
- 1,
- 0,
- 0,
- 0,
- 1236,
- 1237,
- 5,
- 60,
- 0,
- 0,
- 1237,
- 1238,
- 5,
- 82,
- 0,
- 0,
- 1238,
- 1239,
- 3,
- 220,
- 110,
- 0,
- 1239,
- 1240,
- 5,
- 8,
- 0,
- 0,
- 1240,
- 1241,
- 3,
- 220,
- 110,
- 0,
- 1241,
- 1242,
- 5,
- 83,
- 0,
- 0,
- 1242,
- 1250,
- 1,
- 0,
- 0,
- 0,
- 1243,
- 1244,
- 5,
- 80,
- 0,
- 0,
- 1244,
- 1245,
- 3,
- 220,
- 110,
- 0,
- 1245,
- 1246,
- 5,
- 78,
- 0,
- 0,
- 1246,
- 1247,
- 3,
- 220,
- 110,
- 0,
- 1247,
- 1248,
- 5,
- 81,
- 0,
- 0,
- 1248,
- 1250,
- 1,
- 0,
- 0,
- 0,
- 1249,
- 1236,
- 1,
- 0,
- 0,
- 0,
- 1249,
- 1243,
- 1,
- 0,
- 0,
- 0,
- 1250,
- 257,
- 1,
- 0,
- 0,
- 0,
- 1251,
- 1252,
- 3,
- 54,
- 27,
- 0,
- 1252,
- 1253,
- 5,
- 2,
- 0,
- 0,
- 1253,
- 1255,
- 1,
- 0,
- 0,
- 0,
- 1254,
- 1251,
- 1,
- 0,
- 0,
- 0,
- 1255,
- 1258,
- 1,
- 0,
- 0,
- 0,
- 1256,
- 1254,
- 1,
- 0,
- 0,
- 0,
- 1256,
- 1257,
- 1,
- 0,
- 0,
- 0,
- 1257,
- 1259,
- 1,
- 0,
- 0,
- 0,
- 1258,
- 1256,
- 1,
- 0,
- 0,
- 0,
- 1259,
- 1260,
- 3,
- 54,
- 27,
- 0,
- 1260,
- 259,
- 1,
- 0,
- 0,
- 0,
- 1261,
- 1266,
- 3,
- 262,
- 131,
- 0,
- 1262,
- 1263,
- 5,
- 8,
- 0,
- 0,
- 1263,
- 1265,
- 3,
- 262,
- 131,
- 0,
- 1264,
- 1262,
- 1,
- 0,
- 0,
- 0,
- 1265,
- 1268,
- 1,
- 0,
- 0,
- 0,
- 1266,
- 1264,
- 1,
- 0,
- 0,
- 0,
- 1266,
- 1267,
- 1,
- 0,
- 0,
- 0,
- 1267,
- 261,
- 1,
- 0,
- 0,
- 0,
- 1268,
- 1266,
- 1,
- 0,
- 0,
- 0,
- 1269,
- 1270,
- 3,
- 264,
- 132,
- 0,
- 1270,
- 1271,
- 5,
- 9,
- 0,
- 0,
- 1271,
- 1274,
- 3,
- 96,
- 48,
- 0,
- 1272,
- 1273,
- 5,
- 11,
- 0,
- 0,
- 1273,
- 1275,
- 3,
- 144,
- 72,
- 0,
- 1274,
- 1272,
- 1,
- 0,
- 0,
- 0,
- 1274,
- 1275,
- 1,
- 0,
- 0,
- 0,
- 1275,
- 263,
- 1,
- 0,
- 0,
- 0,
- 1276,
- 1277,
- 5,
- 93,
- 0,
- 0,
- 1277,
- 265,
- 1,
- 0,
- 0,
- 0,
- 1278,
- 1283,
- 3,
- 268,
- 134,
- 0,
- 1279,
- 1280,
- 5,
- 8,
- 0,
- 0,
- 1280,
- 1282,
- 3,
- 268,
- 134,
- 0,
- 1281,
- 1279,
- 1,
- 0,
- 0,
- 0,
- 1282,
- 1285,
- 1,
- 0,
- 0,
- 0,
- 1283,
- 1281,
- 1,
- 0,
- 0,
- 0,
- 1283,
- 1284,
- 1,
- 0,
- 0,
- 0,
- 1284,
- 1290,
- 1,
- 0,
- 0,
- 0,
- 1285,
- 1283,
- 1,
- 0,
- 0,
- 0,
- 1286,
- 1287,
- 5,
- 8,
- 0,
- 0,
- 1287,
- 1289,
- 3,
- 270,
- 135,
- 0,
- 1288,
- 1286,
- 1,
- 0,
- 0,
- 0,
- 1289,
- 1292,
- 1,
- 0,
- 0,
- 0,
- 1290,
- 1288,
- 1,
- 0,
- 0,
- 0,
- 1290,
- 1291,
- 1,
- 0,
- 0,
- 0,
- 1291,
- 1302,
- 1,
- 0,
- 0,
- 0,
- 1292,
- 1290,
- 1,
- 0,
- 0,
- 0,
- 1293,
- 1298,
- 3,
- 270,
- 135,
- 0,
- 1294,
- 1295,
- 5,
- 8,
- 0,
- 0,
- 1295,
- 1297,
- 3,
- 270,
- 135,
- 0,
- 1296,
- 1294,
- 1,
- 0,
- 0,
- 0,
- 1297,
- 1300,
- 1,
- 0,
- 0,
- 0,
- 1298,
- 1296,
- 1,
- 0,
- 0,
- 0,
- 1298,
- 1299,
- 1,
- 0,
- 0,
- 0,
- 1299,
- 1302,
- 1,
- 0,
- 0,
- 0,
- 1300,
- 1298,
- 1,
- 0,
- 0,
- 0,
- 1301,
- 1278,
- 1,
- 0,
- 0,
- 0,
- 1301,
- 1293,
- 1,
- 0,
- 0,
- 0,
- 1302,
- 267,
- 1,
- 0,
- 0,
- 0,
- 1303,
- 1304,
- 3,
- 220,
- 110,
- 0,
- 1304,
- 269,
- 1,
- 0,
- 0,
- 0,
- 1305,
- 1306,
- 3,
- 264,
- 132,
- 0,
- 1306,
- 1307,
- 5,
- 9,
- 0,
- 0,
- 1307,
- 1308,
- 3,
- 220,
- 110,
- 0,
- 1308,
- 271,
- 1,
- 0,
- 0,
- 0,
- 1309,
- 1312,
- 5,
- 88,
- 0,
- 0,
- 1310,
- 1312,
- 3,
- 274,
- 137,
- 0,
- 1311,
- 1309,
- 1,
- 0,
- 0,
- 0,
- 1311,
- 1310,
- 1,
- 0,
- 0,
- 0,
- 1312,
- 1313,
- 1,
- 0,
- 0,
- 0,
- 1313,
- 1314,
- 5,
- 93,
- 0,
- 0,
- 1314,
- 273,
- 1,
- 0,
- 0,
- 0,
- 1315,
- 1316,
- 7,
- 7,
- 0,
- 0,
- 1316,
- 275,
- 1,
- 0,
- 0,
- 0,
- 125,
- 279,
- 285,
- 297,
- 301,
- 311,
- 325,
- 357,
- 361,
- 370,
- 382,
- 388,
- 399,
- 408,
- 425,
- 432,
- 440,
- 445,
- 450,
- 457,
- 466,
- 474,
- 479,
- 484,
- 491,
- 498,
- 505,
- 507,
- 512,
- 517,
- 525,
- 530,
- 539,
- 546,
- 548,
- 553,
- 558,
- 564,
- 569,
- 577,
- 582,
- 588,
- 599,
- 613,
- 619,
- 625,
- 633,
- 640,
- 644,
- 648,
- 653,
- 671,
- 675,
- 681,
- 685,
- 688,
- 703,
- 712,
- 737,
- 747,
- 754,
- 761,
- 765,
- 773,
- 781,
- 783,
- 794,
- 807,
- 813,
- 817,
- 822,
- 840,
- 844,
- 848,
- 853,
- 865,
- 875,
- 881,
- 889,
- 896,
- 901,
- 904,
- 912,
- 916,
- 923,
- 928,
- 933,
- 942,
- 949,
- 965,
- 980,
- 988,
- 993,
- 1002,
- 1011,
- 1015,
- 1023,
- 1028,
- 1033,
- 1042,
- 1047,
- 1075,
- 1081,
- 1094,
- 1102,
- 1110,
- 1116,
- 1127,
- 1141,
- 1155,
- 1163,
- 1190,
- 1196,
- 1198,
- 1212,
- 1223,
- 1231,
- 1249,
- 1256,
- 1266,
- 1274,
- 1283,
- 1290,
- 1298,
- 1301,
- 1311,
- ]
-
-
-class OpenSCENARIO2Parser(Parser):
- grammarFileName = "OpenSCENARIO2.g4"
-
- atn = ATNDeserializer().deserialize(serializedATN())
-
- decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)]
-
- sharedContextCache = PredictionContextCache()
-
- literalNames = [
- "",
- "'import'",
- "'.'",
- "'type'",
- "'is'",
- "'SI'",
- "'unit'",
- "'of'",
- "','",
- "':'",
- "'enum'",
- "'='",
- "'!'",
- "'=='",
- "'struct'",
- "'inherits'",
- "'actor'",
- "'scenario'",
- "'action'",
- "'modifier'",
- "'extend'",
- "'global'",
- "'list'",
- "'int'",
- "'uint'",
- "'float'",
- "'bool'",
- "'string'",
- "'event'",
- "'if'",
- "'@'",
- "'as'",
- "'rise'",
- "'fall'",
- "'elapsed'",
- "'every'",
- "'var'",
- "'sample'",
- "'with'",
- "'keep'",
- "'default'",
- "'hard'",
- "'remove_default'",
- "'on'",
- "'do'",
- "'serial'",
- "'one_of'",
- "'parallel'",
- "'wait'",
- "'emit'",
- "'call'",
- "'until'",
- "'def'",
- "'->'",
- "'expression'",
- "'undefined'",
- "'external'",
- "'only'",
- "'cover'",
- "'record'",
- "'range'",
- "'?'",
- "'=>'",
- "'or'",
- "'and'",
- "'not'",
- "'!='",
- "'<'",
- "'<='",
- "'>'",
- "'>='",
- "'in'",
- "'+'",
- "'-'",
- "'*'",
- "'/'",
- "'%'",
- "'it'",
- "'..'",
- "",
- "'['",
- "']'",
- "'('",
- "')'",
- ]
-
- symbolicNames = [
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "NEWLINE",
- "OPEN_BRACK",
- "CLOSE_BRACK",
- "OPEN_PAREN",
- "CLOSE_PAREN",
- "SKIP_",
- "BLOCK_COMMENT",
- "LINE_COMMENT",
- "StringLiteral",
- "FloatLiteral",
- "UintLiteral",
- "HexUintLiteral",
- "IntLiteral",
- "BoolLiteral",
- "Identifier",
- "INDENT",
- "DEDENT",
- ]
-
- RULE_osc_file = 0
- RULE_preludeStatement = 1
- RULE_importStatement = 2
- RULE_importReference = 3
- RULE_structuredIdentifier = 4
- RULE_oscDeclaration = 5
- RULE_physicalTypeDeclaration = 6
- RULE_physicalTypeName = 7
- RULE_baseUnitSpecifier = 8
- RULE_sIBaseUnitSpecifier = 9
- RULE_unitDeclaration = 10
- RULE_unitSpecifier = 11
- RULE_sIUnitSpecifier = 12
- RULE_sIBaseExponentList = 13
- RULE_sIBaseExponent = 14
- RULE_sIFactor = 15
- RULE_sIOffset = 16
- RULE_enumDeclaration = 17
- RULE_enumMemberDecl = 18
- RULE_enumMemberValue = 19
- RULE_enumName = 20
- RULE_enumMemberName = 21
- RULE_enumValueReference = 22
- RULE_inheritsCondition = 23
- RULE_structDeclaration = 24
- RULE_structInherts = 25
- RULE_structMemberDecl = 26
- RULE_fieldName = 27
- RULE_structName = 28
- RULE_actorDeclaration = 29
- RULE_actorInherts = 30
- RULE_actorMemberDecl = 31
- RULE_actorName = 32
- RULE_scenarioDeclaration = 33
- RULE_scenarioInherts = 34
- RULE_scenarioMemberDecl = 35
- RULE_qualifiedBehaviorName = 36
- RULE_behaviorName = 37
- RULE_actionDeclaration = 38
- RULE_actionInherts = 39
- RULE_modifierDeclaration = 40
- RULE_modifierName = 41
- RULE_typeExtension = 42
- RULE_enumTypeExtension = 43
- RULE_structuredTypeExtension = 44
- RULE_extendableTypeName = 45
- RULE_extensionMemberDecl = 46
- RULE_globalParameterDeclaration = 47
- RULE_typeDeclarator = 48
- RULE_nonAggregateTypeDeclarator = 49
- RULE_aggregateTypeDeclarator = 50
- RULE_listTypeDeclarator = 51
- RULE_primitiveType = 52
- RULE_typeName = 53
- RULE_eventDeclaration = 54
- RULE_eventSpecification = 55
- RULE_eventReference = 56
- RULE_eventFieldDecl = 57
- RULE_eventFieldName = 58
- RULE_eventName = 59
- RULE_eventPath = 60
- RULE_eventCondition = 61
- RULE_riseExpression = 62
- RULE_fallExpression = 63
- RULE_elapsedExpression = 64
- RULE_everyExpression = 65
- RULE_boolExpression = 66
- RULE_durationExpression = 67
- RULE_fieldDeclaration = 68
- RULE_parameterDeclaration = 69
- RULE_variableDeclaration = 70
- RULE_sampleExpression = 71
- RULE_defaultValue = 72
- RULE_parameterWithDeclaration = 73
- RULE_parameterWithMember = 74
- RULE_constraintDeclaration = 75
- RULE_keepConstraintDeclaration = 76
- RULE_constraintQualifier = 77
- RULE_constraintExpression = 78
- RULE_removeDefaultDeclaration = 79
- RULE_parameterReference = 80
- RULE_modifierInvocation = 81
- RULE_behaviorExpression = 82
- RULE_behaviorSpecification = 83
- RULE_onDirective = 84
- RULE_onMember = 85
- RULE_doDirective = 86
- RULE_doMember = 87
- RULE_composition = 88
- RULE_compositionOperator = 89
- RULE_behaviorInvocation = 90
- RULE_behaviorWithDeclaration = 91
- RULE_behaviorWithMember = 92
- RULE_labelName = 93
- RULE_actorExpression = 94
- RULE_waitDirective = 95
- RULE_emitDirective = 96
- RULE_callDirective = 97
- RULE_untilDirective = 98
- RULE_methodInvocation = 99
- RULE_methodDeclaration = 100
- RULE_returnType = 101
- RULE_methodImplementation = 102
- RULE_methodQualifier = 103
- RULE_methodName = 104
- RULE_coverageDeclaration = 105
- RULE_coverDeclaration = 106
- RULE_recordDeclaration = 107
- RULE_coverageArgumentList = 108
- RULE_targetName = 109
- RULE_expression = 110
- RULE_ternaryOpExp = 111
- RULE_implication = 112
- RULE_disjunction = 113
- RULE_conjunction = 114
- RULE_inversion = 115
- RULE_relation = 116
- RULE_relationalOp = 117
- RULE_sum = 118
- RULE_additiveOp = 119
- RULE_term = 120
- RULE_multiplicativeOp = 121
- RULE_factor = 122
- RULE_postfixExp = 123
- RULE_fieldAccess = 124
- RULE_primaryExp = 125
- RULE_valueExp = 126
- RULE_listConstructor = 127
- RULE_rangeConstructor = 128
- RULE_identifierReference = 129
- RULE_argumentListSpecification = 130
- RULE_argumentSpecification = 131
- RULE_argumentName = 132
- RULE_argumentList = 133
- RULE_positionalArgument = 134
- RULE_namedArgument = 135
- RULE_physicalLiteral = 136
- RULE_integerLiteral = 137
-
- ruleNames = [
- "osc_file",
- "preludeStatement",
- "importStatement",
- "importReference",
- "structuredIdentifier",
- "oscDeclaration",
- "physicalTypeDeclaration",
- "physicalTypeName",
- "baseUnitSpecifier",
- "sIBaseUnitSpecifier",
- "unitDeclaration",
- "unitSpecifier",
- "sIUnitSpecifier",
- "sIBaseExponentList",
- "sIBaseExponent",
- "sIFactor",
- "sIOffset",
- "enumDeclaration",
- "enumMemberDecl",
- "enumMemberValue",
- "enumName",
- "enumMemberName",
- "enumValueReference",
- "inheritsCondition",
- "structDeclaration",
- "structInherts",
- "structMemberDecl",
- "fieldName",
- "structName",
- "actorDeclaration",
- "actorInherts",
- "actorMemberDecl",
- "actorName",
- "scenarioDeclaration",
- "scenarioInherts",
- "scenarioMemberDecl",
- "qualifiedBehaviorName",
- "behaviorName",
- "actionDeclaration",
- "actionInherts",
- "modifierDeclaration",
- "modifierName",
- "typeExtension",
- "enumTypeExtension",
- "structuredTypeExtension",
- "extendableTypeName",
- "extensionMemberDecl",
- "globalParameterDeclaration",
- "typeDeclarator",
- "nonAggregateTypeDeclarator",
- "aggregateTypeDeclarator",
- "listTypeDeclarator",
- "primitiveType",
- "typeName",
- "eventDeclaration",
- "eventSpecification",
- "eventReference",
- "eventFieldDecl",
- "eventFieldName",
- "eventName",
- "eventPath",
- "eventCondition",
- "riseExpression",
- "fallExpression",
- "elapsedExpression",
- "everyExpression",
- "boolExpression",
- "durationExpression",
- "fieldDeclaration",
- "parameterDeclaration",
- "variableDeclaration",
- "sampleExpression",
- "defaultValue",
- "parameterWithDeclaration",
- "parameterWithMember",
- "constraintDeclaration",
- "keepConstraintDeclaration",
- "constraintQualifier",
- "constraintExpression",
- "removeDefaultDeclaration",
- "parameterReference",
- "modifierInvocation",
- "behaviorExpression",
- "behaviorSpecification",
- "onDirective",
- "onMember",
- "doDirective",
- "doMember",
- "composition",
- "compositionOperator",
- "behaviorInvocation",
- "behaviorWithDeclaration",
- "behaviorWithMember",
- "labelName",
- "actorExpression",
- "waitDirective",
- "emitDirective",
- "callDirective",
- "untilDirective",
- "methodInvocation",
- "methodDeclaration",
- "returnType",
- "methodImplementation",
- "methodQualifier",
- "methodName",
- "coverageDeclaration",
- "coverDeclaration",
- "recordDeclaration",
- "coverageArgumentList",
- "targetName",
- "expression",
- "ternaryOpExp",
- "implication",
- "disjunction",
- "conjunction",
- "inversion",
- "relation",
- "relationalOp",
- "sum",
- "additiveOp",
- "term",
- "multiplicativeOp",
- "factor",
- "postfixExp",
- "fieldAccess",
- "primaryExp",
- "valueExp",
- "listConstructor",
- "rangeConstructor",
- "identifierReference",
- "argumentListSpecification",
- "argumentSpecification",
- "argumentName",
- "argumentList",
- "positionalArgument",
- "namedArgument",
- "physicalLiteral",
- "integerLiteral",
- ]
-
- EOF = Token.EOF
- T__0 = 1
- T__1 = 2
- T__2 = 3
- T__3 = 4
- T__4 = 5
- T__5 = 6
- T__6 = 7
- T__7 = 8
- T__8 = 9
- T__9 = 10
- T__10 = 11
- T__11 = 12
- T__12 = 13
- T__13 = 14
- T__14 = 15
- T__15 = 16
- T__16 = 17
- T__17 = 18
- T__18 = 19
- T__19 = 20
- T__20 = 21
- T__21 = 22
- T__22 = 23
- T__23 = 24
- T__24 = 25
- T__25 = 26
- T__26 = 27
- T__27 = 28
- T__28 = 29
- T__29 = 30
- T__30 = 31
- T__31 = 32
- T__32 = 33
- T__33 = 34
- T__34 = 35
- T__35 = 36
- T__36 = 37
- T__37 = 38
- T__38 = 39
- T__39 = 40
- T__40 = 41
- T__41 = 42
- T__42 = 43
- T__43 = 44
- T__44 = 45
- T__45 = 46
- T__46 = 47
- T__47 = 48
- T__48 = 49
- T__49 = 50
- T__50 = 51
- T__51 = 52
- T__52 = 53
- T__53 = 54
- T__54 = 55
- T__55 = 56
- T__56 = 57
- T__57 = 58
- T__58 = 59
- T__59 = 60
- T__60 = 61
- T__61 = 62
- T__62 = 63
- T__63 = 64
- T__64 = 65
- T__65 = 66
- T__66 = 67
- T__67 = 68
- T__68 = 69
- T__69 = 70
- T__70 = 71
- T__71 = 72
- T__72 = 73
- T__73 = 74
- T__74 = 75
- T__75 = 76
- T__76 = 77
- T__77 = 78
- NEWLINE = 79
- OPEN_BRACK = 80
- CLOSE_BRACK = 81
- OPEN_PAREN = 82
- CLOSE_PAREN = 83
- SKIP_ = 84
- BLOCK_COMMENT = 85
- LINE_COMMENT = 86
- StringLiteral = 87
- FloatLiteral = 88
- UintLiteral = 89
- HexUintLiteral = 90
- IntLiteral = 91
- BoolLiteral = 92
- Identifier = 93
- INDENT = 94
- DEDENT = 95
-
- def __init__(self, input: TokenStream, output: TextIO = sys.stdout):
- super().__init__(input, output)
- self.checkVersion("4.10.1")
- self._interp = ParserATNSimulator(
- self, self.atn, self.decisionsToDFA, self.sharedContextCache
- )
- self._predicates = None
-
- class Osc_fileContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def EOF(self):
- return self.getToken(OpenSCENARIO2Parser.EOF, 0)
-
- def preludeStatement(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.PreludeStatementContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.PreludeStatementContext, i
- )
-
- def oscDeclaration(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.OscDeclarationContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.OscDeclarationContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_osc_file
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterOsc_file"):
- listener.enterOsc_file(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitOsc_file"):
- listener.exitOsc_file(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitOsc_file"):
- return visitor.visitOsc_file(self)
- else:
- return visitor.visitChildren(self)
-
- def osc_file(self):
- localctx = OpenSCENARIO2Parser.Osc_fileContext(self, self._ctx, self.state)
- self.enterRule(localctx, 0, self.RULE_osc_file)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 279
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 0, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- self.state = 276
- self.preludeStatement()
- self.state = 281
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 0, self._ctx)
-
- self.state = 285
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__2)
- | (1 << OpenSCENARIO2Parser.T__5)
- | (1 << OpenSCENARIO2Parser.T__9)
- | (1 << OpenSCENARIO2Parser.T__13)
- | (1 << OpenSCENARIO2Parser.T__15)
- | (1 << OpenSCENARIO2Parser.T__16)
- | (1 << OpenSCENARIO2Parser.T__17)
- | (1 << OpenSCENARIO2Parser.T__18)
- | (1 << OpenSCENARIO2Parser.T__19)
- | (1 << OpenSCENARIO2Parser.T__20)
- )
- )
- != 0
- ) or _la == OpenSCENARIO2Parser.NEWLINE:
- self.state = 282
- self.oscDeclaration()
- self.state = 287
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 288
- self.match(OpenSCENARIO2Parser.EOF)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PreludeStatementContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def importStatement(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ImportStatementContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_preludeStatement
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPreludeStatement"):
- listener.enterPreludeStatement(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPreludeStatement"):
- listener.exitPreludeStatement(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPreludeStatement"):
- return visitor.visitPreludeStatement(self)
- else:
- return visitor.visitChildren(self)
-
- def preludeStatement(self):
- localctx = OpenSCENARIO2Parser.PreludeStatementContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 2, self.RULE_preludeStatement)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 290
- self.importStatement()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ImportStatementContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def importReference(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ImportReferenceContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_importStatement
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterImportStatement"):
- listener.enterImportStatement(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitImportStatement"):
- listener.exitImportStatement(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitImportStatement"):
- return visitor.visitImportStatement(self)
- else:
- return visitor.visitChildren(self)
-
- def importStatement(self):
- localctx = OpenSCENARIO2Parser.ImportStatementContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 4, self.RULE_importStatement)
- try:
- self.state = 297
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__0]:
- self.enterOuterAlt(localctx, 1)
- self.state = 292
- self.match(OpenSCENARIO2Parser.T__0)
- self.state = 293
- self.importReference()
- self.state = 294
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.enterOuterAlt(localctx, 2)
- self.state = 296
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ImportReferenceContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def StringLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.StringLiteral, 0)
-
- def structuredIdentifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructuredIdentifierContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_importReference
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterImportReference"):
- listener.enterImportReference(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitImportReference"):
- listener.exitImportReference(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitImportReference"):
- return visitor.visitImportReference(self)
- else:
- return visitor.visitChildren(self)
-
- def importReference(self):
- localctx = OpenSCENARIO2Parser.ImportReferenceContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 6, self.RULE_importReference)
- try:
- self.state = 301
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.StringLiteral]:
- self.enterOuterAlt(localctx, 1)
- self.state = 299
- self.match(OpenSCENARIO2Parser.StringLiteral)
- pass
- elif token in [OpenSCENARIO2Parser.Identifier]:
- self.enterOuterAlt(localctx, 2)
- self.state = 300
- self.structuredIdentifier(0)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class StructuredIdentifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def structuredIdentifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructuredIdentifierContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_structuredIdentifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterStructuredIdentifier"):
- listener.enterStructuredIdentifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitStructuredIdentifier"):
- listener.exitStructuredIdentifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitStructuredIdentifier"):
- return visitor.visitStructuredIdentifier(self)
- else:
- return visitor.visitChildren(self)
-
- def structuredIdentifier(self, _p: int = 0):
- _parentctx = self._ctx
- _parentState = self.state
- localctx = OpenSCENARIO2Parser.StructuredIdentifierContext(
- self, self._ctx, _parentState
- )
- _prevctx = localctx
- _startState = 8
- self.enterRecursionRule(localctx, 8, self.RULE_structuredIdentifier, _p)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 304
- self.match(OpenSCENARIO2Parser.Identifier)
- self._ctx.stop = self._input.LT(-1)
- self.state = 311
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 4, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- if self._parseListeners is not None:
- self.triggerExitRuleEvent()
- _prevctx = localctx
- localctx = OpenSCENARIO2Parser.StructuredIdentifierContext(
- self, _parentctx, _parentState
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_structuredIdentifier
- )
- self.state = 306
- if not self.precpred(self._ctx, 1):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 1)"
- )
- self.state = 307
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 308
- self.match(OpenSCENARIO2Parser.Identifier)
- self.state = 313
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 4, self._ctx)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.unrollRecursionContexts(_parentctx)
- return localctx
-
- class OscDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def physicalTypeDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.PhysicalTypeDeclarationContext, 0
- )
-
- def unitDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.UnitDeclarationContext, 0
- )
-
- def enumDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumDeclarationContext, 0
- )
-
- def structDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructDeclarationContext, 0
- )
-
- def actorDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActorDeclarationContext, 0
- )
-
- def actionDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActionDeclarationContext, 0
- )
-
- def scenarioDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ScenarioDeclarationContext, 0
- )
-
- def modifierDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ModifierDeclarationContext, 0
- )
-
- def typeExtension(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TypeExtensionContext, 0)
-
- def globalParameterDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.GlobalParameterDeclarationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_oscDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterOscDeclaration"):
- listener.enterOscDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitOscDeclaration"):
- listener.exitOscDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitOscDeclaration"):
- return visitor.visitOscDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def oscDeclaration(self):
- localctx = OpenSCENARIO2Parser.OscDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 10, self.RULE_oscDeclaration)
- try:
- self.state = 325
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__2]:
- self.enterOuterAlt(localctx, 1)
- self.state = 314
- self.physicalTypeDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__5]:
- self.enterOuterAlt(localctx, 2)
- self.state = 315
- self.unitDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__9]:
- self.enterOuterAlt(localctx, 3)
- self.state = 316
- self.enumDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__13]:
- self.enterOuterAlt(localctx, 4)
- self.state = 317
- self.structDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__15]:
- self.enterOuterAlt(localctx, 5)
- self.state = 318
- self.actorDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__17]:
- self.enterOuterAlt(localctx, 6)
- self.state = 319
- self.actionDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__16]:
- self.enterOuterAlt(localctx, 7)
- self.state = 320
- self.scenarioDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__18]:
- self.enterOuterAlt(localctx, 8)
- self.state = 321
- self.modifierDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__19]:
- self.enterOuterAlt(localctx, 9)
- self.state = 322
- self.typeExtension()
- pass
- elif token in [OpenSCENARIO2Parser.T__20]:
- self.enterOuterAlt(localctx, 10)
- self.state = 323
- self.globalParameterDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.enterOuterAlt(localctx, 11)
- self.state = 324
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PhysicalTypeDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def physicalTypeName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.PhysicalTypeNameContext, 0
- )
-
- def baseUnitSpecifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BaseUnitSpecifierContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_physicalTypeDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPhysicalTypeDeclaration"):
- listener.enterPhysicalTypeDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPhysicalTypeDeclaration"):
- listener.exitPhysicalTypeDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPhysicalTypeDeclaration"):
- return visitor.visitPhysicalTypeDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def physicalTypeDeclaration(self):
- localctx = OpenSCENARIO2Parser.PhysicalTypeDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 12, self.RULE_physicalTypeDeclaration)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 327
- self.match(OpenSCENARIO2Parser.T__2)
- self.state = 328
- self.physicalTypeName()
- self.state = 329
- self.match(OpenSCENARIO2Parser.T__3)
- self.state = 330
- self.baseUnitSpecifier()
- self.state = 331
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PhysicalTypeNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_physicalTypeName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPhysicalTypeName"):
- listener.enterPhysicalTypeName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPhysicalTypeName"):
- listener.exitPhysicalTypeName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPhysicalTypeName"):
- return visitor.visitPhysicalTypeName(self)
- else:
- return visitor.visitChildren(self)
-
- def physicalTypeName(self):
- localctx = OpenSCENARIO2Parser.PhysicalTypeNameContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 14, self.RULE_physicalTypeName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 333
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BaseUnitSpecifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def sIBaseUnitSpecifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.SIBaseUnitSpecifierContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_baseUnitSpecifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBaseUnitSpecifier"):
- listener.enterBaseUnitSpecifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBaseUnitSpecifier"):
- listener.exitBaseUnitSpecifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBaseUnitSpecifier"):
- return visitor.visitBaseUnitSpecifier(self)
- else:
- return visitor.visitChildren(self)
-
- def baseUnitSpecifier(self):
- localctx = OpenSCENARIO2Parser.BaseUnitSpecifierContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 16, self.RULE_baseUnitSpecifier)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 335
- self.sIBaseUnitSpecifier()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SIBaseUnitSpecifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def sIBaseExponentList(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.SIBaseExponentListContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sIBaseUnitSpecifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSIBaseUnitSpecifier"):
- listener.enterSIBaseUnitSpecifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSIBaseUnitSpecifier"):
- listener.exitSIBaseUnitSpecifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSIBaseUnitSpecifier"):
- return visitor.visitSIBaseUnitSpecifier(self)
- else:
- return visitor.visitChildren(self)
-
- def sIBaseUnitSpecifier(self):
- localctx = OpenSCENARIO2Parser.SIBaseUnitSpecifierContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 18, self.RULE_sIBaseUnitSpecifier)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 337
- self.match(OpenSCENARIO2Parser.T__4)
- self.state = 338
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 339
- self.sIBaseExponentList()
- self.state = 340
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class UnitDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
- self.unitName = None # Token
-
- def physicalTypeName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.PhysicalTypeNameContext, 0
- )
-
- def unitSpecifier(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.UnitSpecifierContext, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_unitDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterUnitDeclaration"):
- listener.enterUnitDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitUnitDeclaration"):
- listener.exitUnitDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitUnitDeclaration"):
- return visitor.visitUnitDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def unitDeclaration(self):
- localctx = OpenSCENARIO2Parser.UnitDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 20, self.RULE_unitDeclaration)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 342
- self.match(OpenSCENARIO2Parser.T__5)
- self.state = 343
- localctx.unitName = self.match(OpenSCENARIO2Parser.Identifier)
- self.state = 344
- self.match(OpenSCENARIO2Parser.T__6)
- self.state = 345
- self.physicalTypeName()
- self.state = 346
- self.match(OpenSCENARIO2Parser.T__3)
- self.state = 347
- self.unitSpecifier()
- self.state = 348
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class UnitSpecifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def sIUnitSpecifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.SIUnitSpecifierContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_unitSpecifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterUnitSpecifier"):
- listener.enterUnitSpecifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitUnitSpecifier"):
- listener.exitUnitSpecifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitUnitSpecifier"):
- return visitor.visitUnitSpecifier(self)
- else:
- return visitor.visitChildren(self)
-
- def unitSpecifier(self):
- localctx = OpenSCENARIO2Parser.UnitSpecifierContext(self, self._ctx, self.state)
- self.enterRule(localctx, 22, self.RULE_unitSpecifier)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 350
- self.sIUnitSpecifier()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SIUnitSpecifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def sIBaseExponentList(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.SIBaseExponentListContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def sIFactor(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.SIFactorContext, 0)
-
- def sIOffset(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.SIOffsetContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sIUnitSpecifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSIUnitSpecifier"):
- listener.enterSIUnitSpecifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSIUnitSpecifier"):
- listener.exitSIUnitSpecifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSIUnitSpecifier"):
- return visitor.visitSIUnitSpecifier(self)
- else:
- return visitor.visitChildren(self)
-
- def sIUnitSpecifier(self):
- localctx = OpenSCENARIO2Parser.SIUnitSpecifierContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 24, self.RULE_sIUnitSpecifier)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 352
- self.match(OpenSCENARIO2Parser.T__4)
- self.state = 353
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 354
- self.sIBaseExponentList()
- self.state = 357
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 6, self._ctx)
- if la_ == 1:
- self.state = 355
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 356
- self.sIFactor()
-
- self.state = 361
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__7:
- self.state = 359
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 360
- self.sIOffset()
-
- self.state = 363
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SIBaseExponentListContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def sIBaseExponent(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.SIBaseExponentContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.SIBaseExponentContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sIBaseExponentList
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSIBaseExponentList"):
- listener.enterSIBaseExponentList(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSIBaseExponentList"):
- listener.exitSIBaseExponentList(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSIBaseExponentList"):
- return visitor.visitSIBaseExponentList(self)
- else:
- return visitor.visitChildren(self)
-
- def sIBaseExponentList(self):
- localctx = OpenSCENARIO2Parser.SIBaseExponentListContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 26, self.RULE_sIBaseExponentList)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 365
- self.sIBaseExponent()
- self.state = 370
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 8, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- self.state = 366
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 367
- self.sIBaseExponent()
- self.state = 372
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 8, self._ctx)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SIBaseExponentContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
- self.sIBaseUnitName = None # Token
-
- def integerLiteral(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.IntegerLiteralContext, 0
- )
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sIBaseExponent
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSIBaseExponent"):
- listener.enterSIBaseExponent(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSIBaseExponent"):
- listener.exitSIBaseExponent(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSIBaseExponent"):
- return visitor.visitSIBaseExponent(self)
- else:
- return visitor.visitChildren(self)
-
- def sIBaseExponent(self):
- localctx = OpenSCENARIO2Parser.SIBaseExponentContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 28, self.RULE_sIBaseExponent)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 373
- localctx.sIBaseUnitName = self.match(OpenSCENARIO2Parser.Identifier)
-
- unitName = (
- None
- if localctx.sIBaseUnitName is None
- else localctx.sIBaseUnitName.text
- )
- if (
- not (unitName == "kg")
- and not (unitName == "m")
- and not (unitName == "s")
- and not (unitName == "A")
- and not (unitName == "K")
- and not (unitName == "mol")
- and not (unitName == "cd")
- and not (unitName == "factor")
- and not (unitName == "offset")
- and not (unitName == "rad")
- ):
- print("unit name %s is not supported" % unitName)
- raise NoViableAltException(self)
-
- self.state = 375
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 376
- self.integerLiteral()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SIFactorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def FloatLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.FloatLiteral, 0)
-
- def integerLiteral(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.IntegerLiteralContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sIFactor
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSIFactor"):
- listener.enterSIFactor(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSIFactor"):
- listener.exitSIFactor(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSIFactor"):
- return visitor.visitSIFactor(self)
- else:
- return visitor.visitChildren(self)
-
- def sIFactor(self):
- localctx = OpenSCENARIO2Parser.SIFactorContext(self, self._ctx, self.state)
- self.enterRule(localctx, 30, self.RULE_sIFactor)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 378
- self.match(OpenSCENARIO2Parser.Identifier)
- self.state = 379
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 382
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.FloatLiteral]:
- self.state = 380
- self.match(OpenSCENARIO2Parser.FloatLiteral)
- pass
- elif token in [
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- ]:
- self.state = 381
- self.integerLiteral()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SIOffsetContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def FloatLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.FloatLiteral, 0)
-
- def integerLiteral(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.IntegerLiteralContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sIOffset
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSIOffset"):
- listener.enterSIOffset(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSIOffset"):
- listener.exitSIOffset(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSIOffset"):
- return visitor.visitSIOffset(self)
- else:
- return visitor.visitChildren(self)
-
- def sIOffset(self):
- localctx = OpenSCENARIO2Parser.SIOffsetContext(self, self._ctx, self.state)
- self.enterRule(localctx, 32, self.RULE_sIOffset)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 384
- self.match(OpenSCENARIO2Parser.Identifier)
- self.state = 385
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 388
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.FloatLiteral]:
- self.state = 386
- self.match(OpenSCENARIO2Parser.FloatLiteral)
- pass
- elif token in [
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- ]:
- self.state = 387
- self.integerLiteral()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def enumName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EnumNameContext, 0)
-
- def OPEN_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0)
-
- def enumMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.EnumMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumMemberDeclContext, i
- )
-
- def CLOSE_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumDeclaration"):
- listener.enterEnumDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumDeclaration"):
- listener.exitEnumDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumDeclaration"):
- return visitor.visitEnumDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def enumDeclaration(self):
- localctx = OpenSCENARIO2Parser.EnumDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 34, self.RULE_enumDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 390
- self.match(OpenSCENARIO2Parser.T__9)
- self.state = 391
- self.enumName()
- self.state = 392
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 393
- self.match(OpenSCENARIO2Parser.OPEN_BRACK)
- self.state = 394
- self.enumMemberDecl()
- self.state = 399
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 395
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 396
- self.enumMemberDecl()
- self.state = 401
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 402
- self.match(OpenSCENARIO2Parser.CLOSE_BRACK)
- self.state = 403
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumMemberDeclContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def enumMemberName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumMemberNameContext, 0
- )
-
- def enumMemberValue(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumMemberValueContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumMemberDecl
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumMemberDecl"):
- listener.enterEnumMemberDecl(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumMemberDecl"):
- listener.exitEnumMemberDecl(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumMemberDecl"):
- return visitor.visitEnumMemberDecl(self)
- else:
- return visitor.visitChildren(self)
-
- def enumMemberDecl(self):
- localctx = OpenSCENARIO2Parser.EnumMemberDeclContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 36, self.RULE_enumMemberDecl)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 405
- self.enumMemberName()
- self.state = 408
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__10:
- self.state = 406
- self.match(OpenSCENARIO2Parser.T__10)
- self.state = 407
- self.enumMemberValue()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumMemberValueContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def UintLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.UintLiteral, 0)
-
- def HexUintLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.HexUintLiteral, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumMemberValue
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumMemberValue"):
- listener.enterEnumMemberValue(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumMemberValue"):
- listener.exitEnumMemberValue(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumMemberValue"):
- return visitor.visitEnumMemberValue(self)
- else:
- return visitor.visitChildren(self)
-
- def enumMemberValue(self):
- localctx = OpenSCENARIO2Parser.EnumMemberValueContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 38, self.RULE_enumMemberValue)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 410
- _la = self._input.LA(1)
- if not (
- _la == OpenSCENARIO2Parser.UintLiteral
- or _la == OpenSCENARIO2Parser.HexUintLiteral
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumName"):
- listener.enterEnumName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumName"):
- listener.exitEnumName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumName"):
- return visitor.visitEnumName(self)
- else:
- return visitor.visitChildren(self)
-
- def enumName(self):
- localctx = OpenSCENARIO2Parser.EnumNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 40, self.RULE_enumName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 412
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumMemberNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumMemberName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumMemberName"):
- listener.enterEnumMemberName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumMemberName"):
- listener.exitEnumMemberName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumMemberName"):
- return visitor.visitEnumMemberName(self)
- else:
- return visitor.visitChildren(self)
-
- def enumMemberName(self):
- localctx = OpenSCENARIO2Parser.EnumMemberNameContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 42, self.RULE_enumMemberName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 414
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumValueReferenceContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def enumName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EnumNameContext, 0)
-
- def enumMemberName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumMemberNameContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumValueReference
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumValueReference"):
- listener.enterEnumValueReference(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumValueReference"):
- listener.exitEnumValueReference(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumValueReference"):
- return visitor.visitEnumValueReference(self)
- else:
- return visitor.visitChildren(self)
-
- def enumValueReference(self):
- localctx = OpenSCENARIO2Parser.EnumValueReferenceContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 44, self.RULE_enumValueReference)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 416
- self.enumName()
- self.state = 417
- self.match(OpenSCENARIO2Parser.T__11)
- self.state = 418
- self.enumMemberName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class InheritsConditionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def fieldName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def enumValueReference(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumValueReferenceContext, 0
- )
-
- def BoolLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.BoolLiteral, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_inheritsCondition
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterInheritsCondition"):
- listener.enterInheritsCondition(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitInheritsCondition"):
- listener.exitInheritsCondition(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitInheritsCondition"):
- return visitor.visitInheritsCondition(self)
- else:
- return visitor.visitChildren(self)
-
- def inheritsCondition(self):
- localctx = OpenSCENARIO2Parser.InheritsConditionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 46, self.RULE_inheritsCondition)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 420
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 421
- self.fieldName()
- self.state = 422
- self.match(OpenSCENARIO2Parser.T__12)
- self.state = 425
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.Identifier]:
- self.state = 423
- self.enumValueReference()
- pass
- elif token in [OpenSCENARIO2Parser.BoolLiteral]:
- self.state = 424
- self.match(OpenSCENARIO2Parser.BoolLiteral)
- pass
- else:
- raise NoViableAltException(self)
-
- self.state = 427
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class StructDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def structName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.StructNameContext, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def structInherts(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.StructInhertsContext, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def structMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.StructMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructMemberDeclContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_structDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterStructDeclaration"):
- listener.enterStructDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitStructDeclaration"):
- listener.exitStructDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitStructDeclaration"):
- return visitor.visitStructDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def structDeclaration(self):
- localctx = OpenSCENARIO2Parser.StructDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 48, self.RULE_structDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 429
- self.match(OpenSCENARIO2Parser.T__13)
- self.state = 430
- self.structName()
- self.state = 432
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__14:
- self.state = 431
- self.structInherts()
-
- self.state = 445
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__8]:
- self.state = 434
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 435
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 436
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 438
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 437
- self.structMemberDecl()
- self.state = 440
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__27)
- | (1 << OpenSCENARIO2Parser.T__35)
- | (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__51)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- or _la == OpenSCENARIO2Parser.Identifier
- ):
- break
-
- self.state = 442
- self.match(OpenSCENARIO2Parser.DEDENT)
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 444
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class StructInhertsContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def structName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.StructNameContext, 0)
-
- def inheritsCondition(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.InheritsConditionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_structInherts
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterStructInherts"):
- listener.enterStructInherts(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitStructInherts"):
- listener.exitStructInherts(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitStructInherts"):
- return visitor.visitStructInherts(self)
- else:
- return visitor.visitChildren(self)
-
- def structInherts(self):
- localctx = OpenSCENARIO2Parser.StructInhertsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 50, self.RULE_structInherts)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 447
- self.match(OpenSCENARIO2Parser.T__14)
- self.state = 448
- self.structName()
- self.state = 450
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 449
- self.inheritsCondition()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class StructMemberDeclContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventDeclarationContext, 0
- )
-
- def fieldDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.FieldDeclarationContext, 0
- )
-
- def constraintDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintDeclarationContext, 0
- )
-
- def methodDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MethodDeclarationContext, 0
- )
-
- def coverageDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverageDeclarationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_structMemberDecl
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterStructMemberDecl"):
- listener.enterStructMemberDecl(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitStructMemberDecl"):
- listener.exitStructMemberDecl(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitStructMemberDecl"):
- return visitor.visitStructMemberDecl(self)
- else:
- return visitor.visitChildren(self)
-
- def structMemberDecl(self):
- localctx = OpenSCENARIO2Parser.StructMemberDeclContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 52, self.RULE_structMemberDecl)
- try:
- self.state = 457
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__27]:
- self.enterOuterAlt(localctx, 1)
- self.state = 452
- self.eventDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__35, OpenSCENARIO2Parser.Identifier]:
- self.enterOuterAlt(localctx, 2)
- self.state = 453
- self.fieldDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__38, OpenSCENARIO2Parser.T__41]:
- self.enterOuterAlt(localctx, 3)
- self.state = 454
- self.constraintDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__51]:
- self.enterOuterAlt(localctx, 4)
- self.state = 455
- self.methodDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__57, OpenSCENARIO2Parser.T__58]:
- self.enterOuterAlt(localctx, 5)
- self.state = 456
- self.coverageDeclaration()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class FieldNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_fieldName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFieldName"):
- listener.enterFieldName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFieldName"):
- listener.exitFieldName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFieldName"):
- return visitor.visitFieldName(self)
- else:
- return visitor.visitChildren(self)
-
- def fieldName(self):
- localctx = OpenSCENARIO2Parser.FieldNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 54, self.RULE_fieldName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 459
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class StructNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_structName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterStructName"):
- listener.enterStructName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitStructName"):
- listener.exitStructName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitStructName"):
- return visitor.visitStructName(self)
- else:
- return visitor.visitChildren(self)
-
- def structName(self):
- localctx = OpenSCENARIO2Parser.StructNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 56, self.RULE_structName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 461
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActorDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def actorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActorNameContext, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def actorInherts(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActorInhertsContext, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def actorMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ActorMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActorMemberDeclContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actorDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActorDeclaration"):
- listener.enterActorDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActorDeclaration"):
- listener.exitActorDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActorDeclaration"):
- return visitor.visitActorDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def actorDeclaration(self):
- localctx = OpenSCENARIO2Parser.ActorDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 58, self.RULE_actorDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 463
- self.match(OpenSCENARIO2Parser.T__15)
- self.state = 464
- self.actorName()
- self.state = 466
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__14:
- self.state = 465
- self.actorInherts()
-
- self.state = 479
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__8]:
- self.state = 468
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 469
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 470
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 472
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 471
- self.actorMemberDecl()
- self.state = 474
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__27)
- | (1 << OpenSCENARIO2Parser.T__35)
- | (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__51)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- or _la == OpenSCENARIO2Parser.Identifier
- ):
- break
-
- self.state = 476
- self.match(OpenSCENARIO2Parser.DEDENT)
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 478
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActorInhertsContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def actorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActorNameContext, 0)
-
- def inheritsCondition(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.InheritsConditionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actorInherts
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActorInherts"):
- listener.enterActorInherts(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActorInherts"):
- listener.exitActorInherts(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActorInherts"):
- return visitor.visitActorInherts(self)
- else:
- return visitor.visitChildren(self)
-
- def actorInherts(self):
- localctx = OpenSCENARIO2Parser.ActorInhertsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 60, self.RULE_actorInherts)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 481
- self.match(OpenSCENARIO2Parser.T__14)
- self.state = 482
- self.actorName()
- self.state = 484
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 483
- self.inheritsCondition()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActorMemberDeclContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventDeclarationContext, 0
- )
-
- def fieldDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.FieldDeclarationContext, 0
- )
-
- def constraintDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintDeclarationContext, 0
- )
-
- def methodDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MethodDeclarationContext, 0
- )
-
- def coverageDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverageDeclarationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actorMemberDecl
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActorMemberDecl"):
- listener.enterActorMemberDecl(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActorMemberDecl"):
- listener.exitActorMemberDecl(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActorMemberDecl"):
- return visitor.visitActorMemberDecl(self)
- else:
- return visitor.visitChildren(self)
-
- def actorMemberDecl(self):
- localctx = OpenSCENARIO2Parser.ActorMemberDeclContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 62, self.RULE_actorMemberDecl)
- try:
- self.state = 491
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__27]:
- self.enterOuterAlt(localctx, 1)
- self.state = 486
- self.eventDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__35, OpenSCENARIO2Parser.Identifier]:
- self.enterOuterAlt(localctx, 2)
- self.state = 487
- self.fieldDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__38, OpenSCENARIO2Parser.T__41]:
- self.enterOuterAlt(localctx, 3)
- self.state = 488
- self.constraintDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__51]:
- self.enterOuterAlt(localctx, 4)
- self.state = 489
- self.methodDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__57, OpenSCENARIO2Parser.T__58]:
- self.enterOuterAlt(localctx, 5)
- self.state = 490
- self.coverageDeclaration()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActorNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actorName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActorName"):
- listener.enterActorName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActorName"):
- listener.exitActorName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActorName"):
- return visitor.visitActorName(self)
- else:
- return visitor.visitChildren(self)
-
- def actorName(self):
- localctx = OpenSCENARIO2Parser.ActorNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 64, self.RULE_actorName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 493
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ScenarioDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def scenarioInherts(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ScenarioInhertsContext, 0
- )
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def scenarioMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext, i
- )
-
- def behaviorSpecification(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.BehaviorSpecificationContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorSpecificationContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_scenarioDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterScenarioDeclaration"):
- listener.enterScenarioDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitScenarioDeclaration"):
- listener.exitScenarioDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitScenarioDeclaration"):
- return visitor.visitScenarioDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def scenarioDeclaration(self):
- localctx = OpenSCENARIO2Parser.ScenarioDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 66, self.RULE_scenarioDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 495
- self.match(OpenSCENARIO2Parser.T__16)
- self.state = 496
- self.qualifiedBehaviorName()
- self.state = 498
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__14:
- self.state = 497
- self.scenarioInherts()
-
- self.state = 512
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__8]:
- self.state = 500
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 501
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 502
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 505
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 505
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [
- OpenSCENARIO2Parser.T__27,
- OpenSCENARIO2Parser.T__35,
- OpenSCENARIO2Parser.T__38,
- OpenSCENARIO2Parser.T__41,
- OpenSCENARIO2Parser.T__51,
- OpenSCENARIO2Parser.T__57,
- OpenSCENARIO2Parser.T__58,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.state = 503
- self.scenarioMemberDecl()
- pass
- elif token in [
- OpenSCENARIO2Parser.T__42,
- OpenSCENARIO2Parser.T__43,
- ]:
- self.state = 504
- self.behaviorSpecification()
- pass
- else:
- raise NoViableAltException(self)
-
- self.state = 507
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__27)
- | (1 << OpenSCENARIO2Parser.T__35)
- | (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__42)
- | (1 << OpenSCENARIO2Parser.T__43)
- | (1 << OpenSCENARIO2Parser.T__51)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- or _la == OpenSCENARIO2Parser.Identifier
- ):
- break
-
- self.state = 509
- self.match(OpenSCENARIO2Parser.DEDENT)
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 511
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ScenarioInhertsContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def inheritsCondition(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.InheritsConditionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_scenarioInherts
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterScenarioInherts"):
- listener.enterScenarioInherts(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitScenarioInherts"):
- listener.exitScenarioInherts(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitScenarioInherts"):
- return visitor.visitScenarioInherts(self)
- else:
- return visitor.visitChildren(self)
-
- def scenarioInherts(self):
- localctx = OpenSCENARIO2Parser.ScenarioInhertsContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 68, self.RULE_scenarioInherts)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 514
- self.match(OpenSCENARIO2Parser.T__14)
- self.state = 515
- self.qualifiedBehaviorName()
- self.state = 517
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 516
- self.inheritsCondition()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ScenarioMemberDeclContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventDeclarationContext, 0
- )
-
- def fieldDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.FieldDeclarationContext, 0
- )
-
- def constraintDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintDeclarationContext, 0
- )
-
- def methodDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MethodDeclarationContext, 0
- )
-
- def coverageDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverageDeclarationContext, 0
- )
-
- def modifierInvocation(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ModifierInvocationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_scenarioMemberDecl
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterScenarioMemberDecl"):
- listener.enterScenarioMemberDecl(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitScenarioMemberDecl"):
- listener.exitScenarioMemberDecl(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitScenarioMemberDecl"):
- return visitor.visitScenarioMemberDecl(self)
- else:
- return visitor.visitChildren(self)
-
- def scenarioMemberDecl(self):
- localctx = OpenSCENARIO2Parser.ScenarioMemberDeclContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 70, self.RULE_scenarioMemberDecl)
- try:
- self.state = 525
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 29, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 519
- self.eventDeclaration()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 520
- self.fieldDeclaration()
- pass
-
- elif la_ == 3:
- self.enterOuterAlt(localctx, 3)
- self.state = 521
- self.constraintDeclaration()
- pass
-
- elif la_ == 4:
- self.enterOuterAlt(localctx, 4)
- self.state = 522
- self.methodDeclaration()
- pass
-
- elif la_ == 5:
- self.enterOuterAlt(localctx, 5)
- self.state = 523
- self.coverageDeclaration()
- pass
-
- elif la_ == 6:
- self.enterOuterAlt(localctx, 6)
- self.state = 524
- self.modifierInvocation()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class QualifiedBehaviorNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def behaviorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.BehaviorNameContext, 0)
-
- def actorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActorNameContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_qualifiedBehaviorName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterQualifiedBehaviorName"):
- listener.enterQualifiedBehaviorName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitQualifiedBehaviorName"):
- listener.exitQualifiedBehaviorName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitQualifiedBehaviorName"):
- return visitor.visitQualifiedBehaviorName(self)
- else:
- return visitor.visitChildren(self)
-
- def qualifiedBehaviorName(self):
- localctx = OpenSCENARIO2Parser.QualifiedBehaviorNameContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 72, self.RULE_qualifiedBehaviorName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 530
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 30, self._ctx)
- if la_ == 1:
- self.state = 527
- self.actorName()
- self.state = 528
- self.match(OpenSCENARIO2Parser.T__1)
-
- self.state = 532
- self.behaviorName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BehaviorNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_behaviorName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBehaviorName"):
- listener.enterBehaviorName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBehaviorName"):
- listener.exitBehaviorName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBehaviorName"):
- return visitor.visitBehaviorName(self)
- else:
- return visitor.visitChildren(self)
-
- def behaviorName(self):
- localctx = OpenSCENARIO2Parser.BehaviorNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 74, self.RULE_behaviorName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 534
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActionDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def actionInherts(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActionInhertsContext, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def scenarioMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext, i
- )
-
- def behaviorSpecification(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.BehaviorSpecificationContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorSpecificationContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actionDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActionDeclaration"):
- listener.enterActionDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActionDeclaration"):
- listener.exitActionDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActionDeclaration"):
- return visitor.visitActionDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def actionDeclaration(self):
- localctx = OpenSCENARIO2Parser.ActionDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 76, self.RULE_actionDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 536
- self.match(OpenSCENARIO2Parser.T__17)
- self.state = 537
- self.qualifiedBehaviorName()
- self.state = 539
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__14:
- self.state = 538
- self.actionInherts()
-
- self.state = 553
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__8]:
- self.state = 541
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 542
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 543
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 546
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 546
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [
- OpenSCENARIO2Parser.T__27,
- OpenSCENARIO2Parser.T__35,
- OpenSCENARIO2Parser.T__38,
- OpenSCENARIO2Parser.T__41,
- OpenSCENARIO2Parser.T__51,
- OpenSCENARIO2Parser.T__57,
- OpenSCENARIO2Parser.T__58,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.state = 544
- self.scenarioMemberDecl()
- pass
- elif token in [
- OpenSCENARIO2Parser.T__42,
- OpenSCENARIO2Parser.T__43,
- ]:
- self.state = 545
- self.behaviorSpecification()
- pass
- else:
- raise NoViableAltException(self)
-
- self.state = 548
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__27)
- | (1 << OpenSCENARIO2Parser.T__35)
- | (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__42)
- | (1 << OpenSCENARIO2Parser.T__43)
- | (1 << OpenSCENARIO2Parser.T__51)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- or _la == OpenSCENARIO2Parser.Identifier
- ):
- break
-
- self.state = 550
- self.match(OpenSCENARIO2Parser.DEDENT)
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 552
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActionInhertsContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def inheritsCondition(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.InheritsConditionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actionInherts
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActionInherts"):
- listener.enterActionInherts(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActionInherts"):
- listener.exitActionInherts(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActionInherts"):
- return visitor.visitActionInherts(self)
- else:
- return visitor.visitChildren(self)
-
- def actionInherts(self):
- localctx = OpenSCENARIO2Parser.ActionInhertsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 78, self.RULE_actionInherts)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 555
- self.match(OpenSCENARIO2Parser.T__14)
- self.state = 556
- self.qualifiedBehaviorName()
- self.state = 558
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 557
- self.inheritsCondition()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ModifierDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def modifierName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ModifierNameContext, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def actorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActorNameContext, 0)
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def scenarioMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_modifierDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterModifierDeclaration"):
- listener.enterModifierDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitModifierDeclaration"):
- listener.exitModifierDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitModifierDeclaration"):
- return visitor.visitModifierDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def modifierDeclaration(self):
- localctx = OpenSCENARIO2Parser.ModifierDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 80, self.RULE_modifierDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 560
- self.match(OpenSCENARIO2Parser.T__18)
- self.state = 564
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 36, self._ctx)
- if la_ == 1:
- self.state = 561
- self.actorName()
- self.state = 562
- self.match(OpenSCENARIO2Parser.T__1)
-
- self.state = 566
- self.modifierName()
- self.state = 569
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__6:
- self.state = 567
- self.match(OpenSCENARIO2Parser.T__6)
- self.state = 568
- self.qualifiedBehaviorName()
-
- self.state = 582
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__8]:
- self.state = 571
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 572
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 573
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 575
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 574
- self.scenarioMemberDecl()
- self.state = 577
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__27)
- | (1 << OpenSCENARIO2Parser.T__35)
- | (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__51)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- or _la == OpenSCENARIO2Parser.Identifier
- ):
- break
-
- self.state = 579
- self.match(OpenSCENARIO2Parser.DEDENT)
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 581
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ModifierNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_modifierName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterModifierName"):
- listener.enterModifierName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitModifierName"):
- listener.exitModifierName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitModifierName"):
- return visitor.visitModifierName(self)
- else:
- return visitor.visitChildren(self)
-
- def modifierName(self):
- localctx = OpenSCENARIO2Parser.ModifierNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 82, self.RULE_modifierName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 584
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class TypeExtensionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def enumTypeExtension(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumTypeExtensionContext, 0
- )
-
- def structuredTypeExtension(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructuredTypeExtensionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_typeExtension
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTypeExtension"):
- listener.enterTypeExtension(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTypeExtension"):
- listener.exitTypeExtension(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTypeExtension"):
- return visitor.visitTypeExtension(self)
- else:
- return visitor.visitChildren(self)
-
- def typeExtension(self):
- localctx = OpenSCENARIO2Parser.TypeExtensionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 84, self.RULE_typeExtension)
- try:
- self.state = 588
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 40, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 586
- self.enumTypeExtension()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 587
- self.structuredTypeExtension()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EnumTypeExtensionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def enumName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EnumNameContext, 0)
-
- def OPEN_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0)
-
- def enumMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.EnumMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumMemberDeclContext, i
- )
-
- def CLOSE_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_enumTypeExtension
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEnumTypeExtension"):
- listener.enterEnumTypeExtension(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEnumTypeExtension"):
- listener.exitEnumTypeExtension(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEnumTypeExtension"):
- return visitor.visitEnumTypeExtension(self)
- else:
- return visitor.visitChildren(self)
-
- def enumTypeExtension(self):
- localctx = OpenSCENARIO2Parser.EnumTypeExtensionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 86, self.RULE_enumTypeExtension)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 590
- self.match(OpenSCENARIO2Parser.T__19)
- self.state = 591
- self.enumName()
- self.state = 592
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 593
- self.match(OpenSCENARIO2Parser.OPEN_BRACK)
- self.state = 594
- self.enumMemberDecl()
- self.state = 599
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 595
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 596
- self.enumMemberDecl()
- self.state = 601
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 602
- self.match(OpenSCENARIO2Parser.CLOSE_BRACK)
- self.state = 603
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class StructuredTypeExtensionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def extendableTypeName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ExtendableTypeNameContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def extensionMemberDecl(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ExtensionMemberDeclContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ExtensionMemberDeclContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_structuredTypeExtension
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterStructuredTypeExtension"):
- listener.enterStructuredTypeExtension(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitStructuredTypeExtension"):
- listener.exitStructuredTypeExtension(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitStructuredTypeExtension"):
- return visitor.visitStructuredTypeExtension(self)
- else:
- return visitor.visitChildren(self)
-
- def structuredTypeExtension(self):
- localctx = OpenSCENARIO2Parser.StructuredTypeExtensionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 88, self.RULE_structuredTypeExtension)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 605
- self.match(OpenSCENARIO2Parser.T__19)
- self.state = 606
- self.extendableTypeName()
- self.state = 607
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 608
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 609
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 611
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 610
- self.extensionMemberDecl()
- self.state = 613
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__27)
- | (1 << OpenSCENARIO2Parser.T__35)
- | (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__42)
- | (1 << OpenSCENARIO2Parser.T__43)
- | (1 << OpenSCENARIO2Parser.T__51)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- or _la == OpenSCENARIO2Parser.Identifier
- ):
- break
-
- self.state = 615
- self.match(OpenSCENARIO2Parser.DEDENT)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ExtendableTypeNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def typeName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TypeNameContext, 0)
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_extendableTypeName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterExtendableTypeName"):
- listener.enterExtendableTypeName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitExtendableTypeName"):
- listener.exitExtendableTypeName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitExtendableTypeName"):
- return visitor.visitExtendableTypeName(self)
- else:
- return visitor.visitChildren(self)
-
- def extendableTypeName(self):
- localctx = OpenSCENARIO2Parser.ExtendableTypeNameContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 90, self.RULE_extendableTypeName)
- try:
- self.state = 619
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 43, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 617
- self.typeName()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 618
- self.qualifiedBehaviorName()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ExtensionMemberDeclContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def structMemberDecl(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructMemberDeclContext, 0
- )
-
- def actorMemberDecl(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActorMemberDeclContext, 0
- )
-
- def scenarioMemberDecl(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ScenarioMemberDeclContext, 0
- )
-
- def behaviorSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorSpecificationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_extensionMemberDecl
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterExtensionMemberDecl"):
- listener.enterExtensionMemberDecl(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitExtensionMemberDecl"):
- listener.exitExtensionMemberDecl(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitExtensionMemberDecl"):
- return visitor.visitExtensionMemberDecl(self)
- else:
- return visitor.visitChildren(self)
-
- def extensionMemberDecl(self):
- localctx = OpenSCENARIO2Parser.ExtensionMemberDeclContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 92, self.RULE_extensionMemberDecl)
- try:
- self.state = 625
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 44, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 621
- self.structMemberDecl()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 622
- self.actorMemberDecl()
- pass
-
- elif la_ == 3:
- self.enterOuterAlt(localctx, 3)
- self.state = 623
- self.scenarioMemberDecl()
- pass
-
- elif la_ == 4:
- self.enterOuterAlt(localctx, 4)
- self.state = 624
- self.behaviorSpecification()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class GlobalParameterDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def fieldName(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.FieldNameContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, i)
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def parameterWithDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ParameterWithDeclarationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def defaultValue(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DefaultValueContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_globalParameterDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterGlobalParameterDeclaration"):
- listener.enterGlobalParameterDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitGlobalParameterDeclaration"):
- listener.exitGlobalParameterDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitGlobalParameterDeclaration"):
- return visitor.visitGlobalParameterDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def globalParameterDeclaration(self):
- localctx = OpenSCENARIO2Parser.GlobalParameterDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 94, self.RULE_globalParameterDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 627
- self.match(OpenSCENARIO2Parser.T__20)
- self.state = 628
- self.fieldName()
- self.state = 633
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 629
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 630
- self.fieldName()
- self.state = 635
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 636
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 637
- self.typeDeclarator()
- self.state = 640
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__10:
- self.state = 638
- self.match(OpenSCENARIO2Parser.T__10)
- self.state = 639
- self.defaultValue()
-
- self.state = 644
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__37]:
- self.state = 642
- self.parameterWithDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 643
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class TypeDeclaratorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def nonAggregateTypeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext, 0
- )
-
- def aggregateTypeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.AggregateTypeDeclaratorContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_typeDeclarator
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTypeDeclarator"):
- listener.enterTypeDeclarator(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTypeDeclarator"):
- listener.exitTypeDeclarator(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTypeDeclarator"):
- return visitor.visitTypeDeclarator(self)
- else:
- return visitor.visitChildren(self)
-
- def typeDeclarator(self):
- localctx = OpenSCENARIO2Parser.TypeDeclaratorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 96, self.RULE_typeDeclarator)
- try:
- self.state = 648
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [
- OpenSCENARIO2Parser.T__22,
- OpenSCENARIO2Parser.T__23,
- OpenSCENARIO2Parser.T__24,
- OpenSCENARIO2Parser.T__25,
- OpenSCENARIO2Parser.T__26,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.enterOuterAlt(localctx, 1)
- self.state = 646
- self.nonAggregateTypeDeclarator()
- pass
- elif token in [OpenSCENARIO2Parser.T__21]:
- self.enterOuterAlt(localctx, 2)
- self.state = 647
- self.aggregateTypeDeclarator()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class NonAggregateTypeDeclaratorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def primitiveType(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PrimitiveTypeContext, 0)
-
- def typeName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TypeNameContext, 0)
-
- def qualifiedBehaviorName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.QualifiedBehaviorNameContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_nonAggregateTypeDeclarator
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterNonAggregateTypeDeclarator"):
- listener.enterNonAggregateTypeDeclarator(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitNonAggregateTypeDeclarator"):
- listener.exitNonAggregateTypeDeclarator(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitNonAggregateTypeDeclarator"):
- return visitor.visitNonAggregateTypeDeclarator(self)
- else:
- return visitor.visitChildren(self)
-
- def nonAggregateTypeDeclarator(self):
- localctx = OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 98, self.RULE_nonAggregateTypeDeclarator)
- try:
- self.state = 653
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 49, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 650
- self.primitiveType()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 651
- self.typeName()
- pass
-
- elif la_ == 3:
- self.enterOuterAlt(localctx, 3)
- self.state = 652
- self.qualifiedBehaviorName()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class AggregateTypeDeclaratorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def listTypeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ListTypeDeclaratorContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_aggregateTypeDeclarator
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterAggregateTypeDeclarator"):
- listener.enterAggregateTypeDeclarator(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitAggregateTypeDeclarator"):
- listener.exitAggregateTypeDeclarator(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitAggregateTypeDeclarator"):
- return visitor.visitAggregateTypeDeclarator(self)
- else:
- return visitor.visitChildren(self)
-
- def aggregateTypeDeclarator(self):
- localctx = OpenSCENARIO2Parser.AggregateTypeDeclaratorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 100, self.RULE_aggregateTypeDeclarator)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 655
- self.listTypeDeclarator()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ListTypeDeclaratorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def nonAggregateTypeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_listTypeDeclarator
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterListTypeDeclarator"):
- listener.enterListTypeDeclarator(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitListTypeDeclarator"):
- listener.exitListTypeDeclarator(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitListTypeDeclarator"):
- return visitor.visitListTypeDeclarator(self)
- else:
- return visitor.visitChildren(self)
-
- def listTypeDeclarator(self):
- localctx = OpenSCENARIO2Parser.ListTypeDeclaratorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 102, self.RULE_listTypeDeclarator)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 657
- self.match(OpenSCENARIO2Parser.T__21)
- self.state = 658
- self.match(OpenSCENARIO2Parser.T__6)
- self.state = 659
- self.nonAggregateTypeDeclarator()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PrimitiveTypeContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_primitiveType
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPrimitiveType"):
- listener.enterPrimitiveType(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPrimitiveType"):
- listener.exitPrimitiveType(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPrimitiveType"):
- return visitor.visitPrimitiveType(self)
- else:
- return visitor.visitChildren(self)
-
- def primitiveType(self):
- localctx = OpenSCENARIO2Parser.PrimitiveTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 104, self.RULE_primitiveType)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 661
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__22)
- | (1 << OpenSCENARIO2Parser.T__23)
- | (1 << OpenSCENARIO2Parser.T__24)
- | (1 << OpenSCENARIO2Parser.T__25)
- | (1 << OpenSCENARIO2Parser.T__26)
- )
- )
- != 0
- )
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class TypeNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_typeName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTypeName"):
- listener.enterTypeName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTypeName"):
- listener.exitTypeName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTypeName"):
- return visitor.visitTypeName(self)
- else:
- return visitor.visitChildren(self)
-
- def typeName(self):
- localctx = OpenSCENARIO2Parser.TypeNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 106, self.RULE_typeName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 663
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EventNameContext, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def argumentListSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ArgumentListSpecificationContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def eventSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventSpecificationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventDeclaration"):
- listener.enterEventDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventDeclaration"):
- listener.exitEventDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventDeclaration"):
- return visitor.visitEventDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def eventDeclaration(self):
- localctx = OpenSCENARIO2Parser.EventDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 108, self.RULE_eventDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 665
- self.match(OpenSCENARIO2Parser.T__27)
- self.state = 666
- self.eventName()
- self.state = 671
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 667
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 668
- self.argumentListSpecification()
- self.state = 669
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
-
- self.state = 675
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__3:
- self.state = 673
- self.match(OpenSCENARIO2Parser.T__3)
- self.state = 674
- self.eventSpecification()
-
- self.state = 677
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventSpecificationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventReference(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventReferenceContext, 0
- )
-
- def eventCondition(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventConditionContext, 0
- )
-
- def eventFieldDecl(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventFieldDeclContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventSpecification
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventSpecification"):
- listener.enterEventSpecification(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventSpecification"):
- listener.exitEventSpecification(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventSpecification"):
- return visitor.visitEventSpecification(self)
- else:
- return visitor.visitChildren(self)
-
- def eventSpecification(self):
- localctx = OpenSCENARIO2Parser.EventSpecificationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 110, self.RULE_eventSpecification)
- self._la = 0 # Token type
- try:
- self.state = 688
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__29]:
- self.enterOuterAlt(localctx, 1)
- self.state = 679
- self.eventReference()
- self.state = 685
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__28 or _la == OpenSCENARIO2Parser.T__30:
- self.state = 681
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__30:
- self.state = 680
- self.eventFieldDecl()
-
- self.state = 683
- self.match(OpenSCENARIO2Parser.T__28)
- self.state = 684
- self.eventCondition()
-
- pass
- elif token in [
- OpenSCENARIO2Parser.T__31,
- OpenSCENARIO2Parser.T__32,
- OpenSCENARIO2Parser.T__33,
- OpenSCENARIO2Parser.T__34,
- OpenSCENARIO2Parser.T__59,
- OpenSCENARIO2Parser.T__64,
- OpenSCENARIO2Parser.T__72,
- OpenSCENARIO2Parser.T__76,
- OpenSCENARIO2Parser.OPEN_BRACK,
- OpenSCENARIO2Parser.OPEN_PAREN,
- OpenSCENARIO2Parser.StringLiteral,
- OpenSCENARIO2Parser.FloatLiteral,
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- OpenSCENARIO2Parser.BoolLiteral,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.enterOuterAlt(localctx, 2)
- self.state = 687
- self.eventCondition()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventReferenceContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventPath(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EventPathContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventReference
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventReference"):
- listener.enterEventReference(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventReference"):
- listener.exitEventReference(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventReference"):
- return visitor.visitEventReference(self)
- else:
- return visitor.visitChildren(self)
-
- def eventReference(self):
- localctx = OpenSCENARIO2Parser.EventReferenceContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 112, self.RULE_eventReference)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 690
- self.match(OpenSCENARIO2Parser.T__29)
- self.state = 691
- self.eventPath()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventFieldDeclContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventFieldName(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventFieldNameContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventFieldDecl
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventFieldDecl"):
- listener.enterEventFieldDecl(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventFieldDecl"):
- listener.exitEventFieldDecl(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventFieldDecl"):
- return visitor.visitEventFieldDecl(self)
- else:
- return visitor.visitChildren(self)
-
- def eventFieldDecl(self):
- localctx = OpenSCENARIO2Parser.EventFieldDeclContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 114, self.RULE_eventFieldDecl)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 693
- self.match(OpenSCENARIO2Parser.T__30)
- self.state = 694
- self.eventFieldName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventFieldNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventFieldName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventFieldName"):
- listener.enterEventFieldName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventFieldName"):
- listener.exitEventFieldName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventFieldName"):
- return visitor.visitEventFieldName(self)
- else:
- return visitor.visitChildren(self)
-
- def eventFieldName(self):
- localctx = OpenSCENARIO2Parser.EventFieldNameContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 116, self.RULE_eventFieldName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 696
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventName"):
- listener.enterEventName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventName"):
- listener.exitEventName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventName"):
- return visitor.visitEventName(self)
- else:
- return visitor.visitChildren(self)
-
- def eventName(self):
- localctx = OpenSCENARIO2Parser.EventNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 118, self.RULE_eventName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 698
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventPathContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EventNameContext, 0)
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventPath
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventPath"):
- listener.enterEventPath(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventPath"):
- listener.exitEventPath(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventPath"):
- return visitor.visitEventPath(self)
- else:
- return visitor.visitChildren(self)
-
- def eventPath(self):
- localctx = OpenSCENARIO2Parser.EventPathContext(self, self._ctx, self.state)
- self.enterRule(localctx, 120, self.RULE_eventPath)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 703
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 55, self._ctx)
- if la_ == 1:
- self.state = 700
- self.expression()
- self.state = 701
- self.match(OpenSCENARIO2Parser.T__1)
-
- self.state = 705
- self.eventName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EventConditionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def boolExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BoolExpressionContext, 0
- )
-
- def riseExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.RiseExpressionContext, 0
- )
-
- def fallExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.FallExpressionContext, 0
- )
-
- def elapsedExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ElapsedExpressionContext, 0
- )
-
- def everyExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EveryExpressionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_eventCondition
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEventCondition"):
- listener.enterEventCondition(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEventCondition"):
- listener.exitEventCondition(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEventCondition"):
- return visitor.visitEventCondition(self)
- else:
- return visitor.visitChildren(self)
-
- def eventCondition(self):
- localctx = OpenSCENARIO2Parser.EventConditionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 122, self.RULE_eventCondition)
- try:
- self.state = 712
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [
- OpenSCENARIO2Parser.T__59,
- OpenSCENARIO2Parser.T__64,
- OpenSCENARIO2Parser.T__72,
- OpenSCENARIO2Parser.T__76,
- OpenSCENARIO2Parser.OPEN_BRACK,
- OpenSCENARIO2Parser.OPEN_PAREN,
- OpenSCENARIO2Parser.StringLiteral,
- OpenSCENARIO2Parser.FloatLiteral,
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- OpenSCENARIO2Parser.BoolLiteral,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.enterOuterAlt(localctx, 1)
- self.state = 707
- self.boolExpression()
- pass
- elif token in [OpenSCENARIO2Parser.T__31]:
- self.enterOuterAlt(localctx, 2)
- self.state = 708
- self.riseExpression()
- pass
- elif token in [OpenSCENARIO2Parser.T__32]:
- self.enterOuterAlt(localctx, 3)
- self.state = 709
- self.fallExpression()
- pass
- elif token in [OpenSCENARIO2Parser.T__33]:
- self.enterOuterAlt(localctx, 4)
- self.state = 710
- self.elapsedExpression()
- pass
- elif token in [OpenSCENARIO2Parser.T__34]:
- self.enterOuterAlt(localctx, 5)
- self.state = 711
- self.everyExpression()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class RiseExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def boolExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BoolExpressionContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_riseExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterRiseExpression"):
- listener.enterRiseExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitRiseExpression"):
- listener.exitRiseExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitRiseExpression"):
- return visitor.visitRiseExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def riseExpression(self):
- localctx = OpenSCENARIO2Parser.RiseExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 124, self.RULE_riseExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 714
- self.match(OpenSCENARIO2Parser.T__31)
- self.state = 715
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 716
- self.boolExpression()
- self.state = 717
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class FallExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def boolExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BoolExpressionContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_fallExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFallExpression"):
- listener.enterFallExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFallExpression"):
- listener.exitFallExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFallExpression"):
- return visitor.visitFallExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def fallExpression(self):
- localctx = OpenSCENARIO2Parser.FallExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 126, self.RULE_fallExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 719
- self.match(OpenSCENARIO2Parser.T__32)
- self.state = 720
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 721
- self.boolExpression()
- self.state = 722
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ElapsedExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def durationExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.DurationExpressionContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_elapsedExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterElapsedExpression"):
- listener.enterElapsedExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitElapsedExpression"):
- listener.exitElapsedExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitElapsedExpression"):
- return visitor.visitElapsedExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def elapsedExpression(self):
- localctx = OpenSCENARIO2Parser.ElapsedExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 128, self.RULE_elapsedExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 724
- self.match(OpenSCENARIO2Parser.T__33)
- self.state = 725
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 726
- self.durationExpression()
- self.state = 727
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EveryExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
- self._Identifier = None # Token
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def durationExpression(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.DurationExpressionContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.DurationExpressionContext, i
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_everyExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEveryExpression"):
- listener.enterEveryExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEveryExpression"):
- listener.exitEveryExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEveryExpression"):
- return visitor.visitEveryExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def everyExpression(self):
- localctx = OpenSCENARIO2Parser.EveryExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 130, self.RULE_everyExpression)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 729
- self.match(OpenSCENARIO2Parser.T__34)
- self.state = 730
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 731
- self.durationExpression()
- self.state = 737
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__7:
- self.state = 732
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 733
- localctx._Identifier = self.match(OpenSCENARIO2Parser.Identifier)
-
- offsetName = (
- None if localctx._Identifier is None else localctx._Identifier.text
- )
- if not (offsetName == "offset"):
- print("%s must be offset" % offsetName)
- raise NoViableAltException(self)
-
- self.state = 735
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 736
- self.durationExpression()
-
- self.state = 739
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BoolExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_boolExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBoolExpression"):
- listener.enterBoolExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBoolExpression"):
- listener.exitBoolExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBoolExpression"):
- return visitor.visitBoolExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def boolExpression(self):
- localctx = OpenSCENARIO2Parser.BoolExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 132, self.RULE_boolExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 741
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class DurationExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_durationExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterDurationExpression"):
- listener.enterDurationExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitDurationExpression"):
- listener.exitDurationExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitDurationExpression"):
- return visitor.visitDurationExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def durationExpression(self):
- localctx = OpenSCENARIO2Parser.DurationExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 134, self.RULE_durationExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 743
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class FieldDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def parameterDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ParameterDeclarationContext, 0
- )
-
- def variableDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.VariableDeclarationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_fieldDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFieldDeclaration"):
- listener.enterFieldDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFieldDeclaration"):
- listener.exitFieldDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFieldDeclaration"):
- return visitor.visitFieldDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def fieldDeclaration(self):
- localctx = OpenSCENARIO2Parser.FieldDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 136, self.RULE_fieldDeclaration)
- try:
- self.state = 747
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.Identifier]:
- self.enterOuterAlt(localctx, 1)
- self.state = 745
- self.parameterDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__35]:
- self.enterOuterAlt(localctx, 2)
- self.state = 746
- self.variableDeclaration()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ParameterDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def fieldName(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.FieldNameContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, i)
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def parameterWithDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ParameterWithDeclarationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def defaultValue(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DefaultValueContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_parameterDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterParameterDeclaration"):
- listener.enterParameterDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitParameterDeclaration"):
- listener.exitParameterDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitParameterDeclaration"):
- return visitor.visitParameterDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def parameterDeclaration(self):
- localctx = OpenSCENARIO2Parser.ParameterDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 138, self.RULE_parameterDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 749
- self.fieldName()
- self.state = 754
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 750
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 751
- self.fieldName()
- self.state = 756
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 757
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 758
- self.typeDeclarator()
- self.state = 761
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__10:
- self.state = 759
- self.match(OpenSCENARIO2Parser.T__10)
- self.state = 760
- self.defaultValue()
-
- self.state = 765
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__37]:
- self.state = 763
- self.parameterWithDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 764
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class VariableDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def fieldName(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.FieldNameContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, i)
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def sampleExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.SampleExpressionContext, 0
- )
-
- def valueExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ValueExpContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_variableDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterVariableDeclaration"):
- listener.enterVariableDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitVariableDeclaration"):
- listener.exitVariableDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitVariableDeclaration"):
- return visitor.visitVariableDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def variableDeclaration(self):
- localctx = OpenSCENARIO2Parser.VariableDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 140, self.RULE_variableDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 767
- self.match(OpenSCENARIO2Parser.T__35)
- self.state = 768
- self.fieldName()
- self.state = 773
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 769
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 770
- self.fieldName()
- self.state = 775
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 776
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 777
- self.typeDeclarator()
- self.state = 783
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__10:
- self.state = 778
- self.match(OpenSCENARIO2Parser.T__10)
- self.state = 781
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__36]:
- self.state = 779
- self.sampleExpression()
- pass
- elif token in [
- OpenSCENARIO2Parser.T__59,
- OpenSCENARIO2Parser.OPEN_BRACK,
- OpenSCENARIO2Parser.StringLiteral,
- OpenSCENARIO2Parser.FloatLiteral,
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- OpenSCENARIO2Parser.BoolLiteral,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.state = 780
- self.valueExp()
- pass
- else:
- raise NoViableAltException(self)
-
- self.state = 785
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SampleExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def eventSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventSpecificationContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def defaultValue(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DefaultValueContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sampleExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSampleExpression"):
- listener.enterSampleExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSampleExpression"):
- listener.exitSampleExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSampleExpression"):
- return visitor.visitSampleExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def sampleExpression(self):
- localctx = OpenSCENARIO2Parser.SampleExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 142, self.RULE_sampleExpression)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 787
- self.match(OpenSCENARIO2Parser.T__36)
- self.state = 788
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 789
- self.expression()
- self.state = 790
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 791
- self.eventSpecification()
- self.state = 794
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__7:
- self.state = 792
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 793
- self.defaultValue()
-
- self.state = 796
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class DefaultValueContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_defaultValue
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterDefaultValue"):
- listener.enterDefaultValue(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitDefaultValue"):
- listener.exitDefaultValue(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitDefaultValue"):
- return visitor.visitDefaultValue(self)
- else:
- return visitor.visitChildren(self)
-
- def defaultValue(self):
- localctx = OpenSCENARIO2Parser.DefaultValueContext(self, self._ctx, self.state)
- self.enterRule(localctx, 144, self.RULE_defaultValue)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 798
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ParameterWithDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def parameterWithMember(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ParameterWithMemberContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ParameterWithMemberContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_parameterWithDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterParameterWithDeclaration"):
- listener.enterParameterWithDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitParameterWithDeclaration"):
- listener.exitParameterWithDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitParameterWithDeclaration"):
- return visitor.visitParameterWithDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def parameterWithDeclaration(self):
- localctx = OpenSCENARIO2Parser.ParameterWithDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 146, self.RULE_parameterWithDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 800
- self.match(OpenSCENARIO2Parser.T__37)
- self.state = 801
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 802
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 803
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 805
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 804
- self.parameterWithMember()
- self.state = 807
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__38)
- | (1 << OpenSCENARIO2Parser.T__41)
- | (1 << OpenSCENARIO2Parser.T__57)
- | (1 << OpenSCENARIO2Parser.T__58)
- )
- )
- != 0
- )
- ):
- break
-
- self.state = 809
- self.match(OpenSCENARIO2Parser.DEDENT)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ParameterWithMemberContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def constraintDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintDeclarationContext, 0
- )
-
- def coverageDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverageDeclarationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_parameterWithMember
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterParameterWithMember"):
- listener.enterParameterWithMember(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitParameterWithMember"):
- listener.exitParameterWithMember(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitParameterWithMember"):
- return visitor.visitParameterWithMember(self)
- else:
- return visitor.visitChildren(self)
-
- def parameterWithMember(self):
- localctx = OpenSCENARIO2Parser.ParameterWithMemberContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 148, self.RULE_parameterWithMember)
- try:
- self.state = 813
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__38, OpenSCENARIO2Parser.T__41]:
- self.enterOuterAlt(localctx, 1)
- self.state = 811
- self.constraintDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__57, OpenSCENARIO2Parser.T__58]:
- self.enterOuterAlt(localctx, 2)
- self.state = 812
- self.coverageDeclaration()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ConstraintDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def keepConstraintDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.KeepConstraintDeclarationContext, 0
- )
-
- def removeDefaultDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.RemoveDefaultDeclarationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_constraintDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterConstraintDeclaration"):
- listener.enterConstraintDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitConstraintDeclaration"):
- listener.exitConstraintDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitConstraintDeclaration"):
- return visitor.visitConstraintDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def constraintDeclaration(self):
- localctx = OpenSCENARIO2Parser.ConstraintDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 150, self.RULE_constraintDeclaration)
- try:
- self.state = 817
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__38]:
- self.enterOuterAlt(localctx, 1)
- self.state = 815
- self.keepConstraintDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__41]:
- self.enterOuterAlt(localctx, 2)
- self.state = 816
- self.removeDefaultDeclaration()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class KeepConstraintDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def constraintExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintExpressionContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def constraintQualifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintQualifierContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_keepConstraintDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterKeepConstraintDeclaration"):
- listener.enterKeepConstraintDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitKeepConstraintDeclaration"):
- listener.exitKeepConstraintDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitKeepConstraintDeclaration"):
- return visitor.visitKeepConstraintDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def keepConstraintDeclaration(self):
- localctx = OpenSCENARIO2Parser.KeepConstraintDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 152, self.RULE_keepConstraintDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 819
- self.match(OpenSCENARIO2Parser.T__38)
- self.state = 820
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 822
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__39 or _la == OpenSCENARIO2Parser.T__40:
- self.state = 821
- self.constraintQualifier()
-
- self.state = 824
- self.constraintExpression()
- self.state = 825
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 826
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ConstraintQualifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_constraintQualifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterConstraintQualifier"):
- listener.enterConstraintQualifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitConstraintQualifier"):
- listener.exitConstraintQualifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitConstraintQualifier"):
- return visitor.visitConstraintQualifier(self)
- else:
- return visitor.visitChildren(self)
-
- def constraintQualifier(self):
- localctx = OpenSCENARIO2Parser.ConstraintQualifierContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 154, self.RULE_constraintQualifier)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 828
- _la = self._input.LA(1)
- if not (
- _la == OpenSCENARIO2Parser.T__39 or _la == OpenSCENARIO2Parser.T__40
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ConstraintExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_constraintExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterConstraintExpression"):
- listener.enterConstraintExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitConstraintExpression"):
- listener.exitConstraintExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitConstraintExpression"):
- return visitor.visitConstraintExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def constraintExpression(self):
- localctx = OpenSCENARIO2Parser.ConstraintExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 156, self.RULE_constraintExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 830
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class RemoveDefaultDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def parameterReference(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ParameterReferenceContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_removeDefaultDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterRemoveDefaultDeclaration"):
- listener.enterRemoveDefaultDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitRemoveDefaultDeclaration"):
- listener.exitRemoveDefaultDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitRemoveDefaultDeclaration"):
- return visitor.visitRemoveDefaultDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def removeDefaultDeclaration(self):
- localctx = OpenSCENARIO2Parser.RemoveDefaultDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 158, self.RULE_removeDefaultDeclaration)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 832
- self.match(OpenSCENARIO2Parser.T__41)
- self.state = 833
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 834
- self.parameterReference()
- self.state = 835
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 836
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ParameterReferenceContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def fieldName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, 0)
-
- def fieldAccess(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldAccessContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_parameterReference
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterParameterReference"):
- listener.enterParameterReference(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitParameterReference"):
- listener.exitParameterReference(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitParameterReference"):
- return visitor.visitParameterReference(self)
- else:
- return visitor.visitChildren(self)
-
- def parameterReference(self):
- localctx = OpenSCENARIO2Parser.ParameterReferenceContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 160, self.RULE_parameterReference)
- try:
- self.state = 840
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 70, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 838
- self.fieldName()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 839
- self.fieldAccess()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ModifierInvocationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def modifierName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ModifierNameContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def behaviorExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorExpressionContext, 0
- )
-
- def actorExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActorExpressionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_modifierInvocation
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterModifierInvocation"):
- listener.enterModifierInvocation(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitModifierInvocation"):
- listener.exitModifierInvocation(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitModifierInvocation"):
- return visitor.visitModifierInvocation(self)
- else:
- return visitor.visitChildren(self)
-
- def modifierInvocation(self):
- localctx = OpenSCENARIO2Parser.ModifierInvocationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 162, self.RULE_modifierInvocation)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 848
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 72, self._ctx)
- if la_ == 1:
- self.state = 844
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 71, self._ctx)
- if la_ == 1:
- self.state = 842
- self.behaviorExpression()
- pass
-
- elif la_ == 2:
- self.state = 843
- self.actorExpression()
- pass
-
- self.state = 846
- self.match(OpenSCENARIO2Parser.T__1)
-
- self.state = 850
- self.modifierName()
- self.state = 851
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 853
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if (((_la - 60)) & ~0x3F) == 0 and (
- (1 << (_la - 60))
- & (
- (1 << (OpenSCENARIO2Parser.T__59 - 60))
- | (1 << (OpenSCENARIO2Parser.T__64 - 60))
- | (1 << (OpenSCENARIO2Parser.T__72 - 60))
- | (1 << (OpenSCENARIO2Parser.T__76 - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_BRACK - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_PAREN - 60))
- | (1 << (OpenSCENARIO2Parser.StringLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.FloatLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.UintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.BoolLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.Identifier - 60))
- )
- ) != 0:
- self.state = 852
- self.argumentList()
-
- self.state = 855
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 856
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BehaviorExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def behaviorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.BehaviorNameContext, 0)
-
- def actorExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActorExpressionContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_behaviorExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBehaviorExpression"):
- listener.enterBehaviorExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBehaviorExpression"):
- listener.exitBehaviorExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBehaviorExpression"):
- return visitor.visitBehaviorExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def behaviorExpression(self):
- localctx = OpenSCENARIO2Parser.BehaviorExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 164, self.RULE_behaviorExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 858
- self.actorExpression()
- self.state = 859
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 861
- self.behaviorName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BehaviorSpecificationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def onDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.OnDirectiveContext, 0)
-
- def doDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DoDirectiveContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_behaviorSpecification
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBehaviorSpecification"):
- listener.enterBehaviorSpecification(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBehaviorSpecification"):
- listener.exitBehaviorSpecification(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBehaviorSpecification"):
- return visitor.visitBehaviorSpecification(self)
- else:
- return visitor.visitChildren(self)
-
- def behaviorSpecification(self):
- localctx = OpenSCENARIO2Parser.BehaviorSpecificationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 166, self.RULE_behaviorSpecification)
- try:
- self.state = 865
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__42]:
- self.enterOuterAlt(localctx, 1)
- self.state = 863
- self.onDirective()
- pass
- elif token in [OpenSCENARIO2Parser.T__43]:
- self.enterOuterAlt(localctx, 2)
- self.state = 864
- self.doDirective()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class OnDirectiveContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventSpecificationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def onMember(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.OnMemberContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.OnMemberContext, i)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_onDirective
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterOnDirective"):
- listener.enterOnDirective(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitOnDirective"):
- listener.exitOnDirective(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitOnDirective"):
- return visitor.visitOnDirective(self)
- else:
- return visitor.visitChildren(self)
-
- def onDirective(self):
- localctx = OpenSCENARIO2Parser.OnDirectiveContext(self, self._ctx, self.state)
- self.enterRule(localctx, 168, self.RULE_onDirective)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 867
- self.match(OpenSCENARIO2Parser.T__42)
- self.state = 868
- self.eventSpecification()
- self.state = 869
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 870
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 871
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 873
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 872
- self.onMember()
- self.state = 875
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- _la == OpenSCENARIO2Parser.T__48 or _la == OpenSCENARIO2Parser.T__49
- ):
- break
-
- self.state = 877
- self.match(OpenSCENARIO2Parser.DEDENT)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class OnMemberContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def callDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.CallDirectiveContext, 0)
-
- def emitDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EmitDirectiveContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_onMember
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterOnMember"):
- listener.enterOnMember(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitOnMember"):
- listener.exitOnMember(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitOnMember"):
- return visitor.visitOnMember(self)
- else:
- return visitor.visitChildren(self)
-
- def onMember(self):
- localctx = OpenSCENARIO2Parser.OnMemberContext(self, self._ctx, self.state)
- self.enterRule(localctx, 170, self.RULE_onMember)
- try:
- self.state = 881
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__49]:
- self.enterOuterAlt(localctx, 1)
- self.state = 879
- self.callDirective()
- pass
- elif token in [OpenSCENARIO2Parser.T__48]:
- self.enterOuterAlt(localctx, 2)
- self.state = 880
- self.emitDirective()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class DoDirectiveContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def doMember(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DoMemberContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_doDirective
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterDoDirective"):
- listener.enterDoDirective(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitDoDirective"):
- listener.exitDoDirective(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitDoDirective"):
- return visitor.visitDoDirective(self)
- else:
- return visitor.visitChildren(self)
-
- def doDirective(self):
- localctx = OpenSCENARIO2Parser.DoDirectiveContext(self, self._ctx, self.state)
- self.enterRule(localctx, 172, self.RULE_doDirective)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 883
- self.match(OpenSCENARIO2Parser.T__43)
- self.state = 884
- self.doMember()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class DoMemberContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def composition(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.CompositionContext, 0)
-
- def behaviorInvocation(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorInvocationContext, 0
- )
-
- def waitDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.WaitDirectiveContext, 0)
-
- def emitDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EmitDirectiveContext, 0)
-
- def callDirective(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.CallDirectiveContext, 0)
-
- def labelName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.LabelNameContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_doMember
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterDoMember"):
- listener.enterDoMember(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitDoMember"):
- listener.exitDoMember(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitDoMember"):
- return visitor.visitDoMember(self)
- else:
- return visitor.visitChildren(self)
-
- def doMember(self):
- localctx = OpenSCENARIO2Parser.DoMemberContext(self, self._ctx, self.state)
- self.enterRule(localctx, 174, self.RULE_doMember)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 889
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 77, self._ctx)
- if la_ == 1:
- self.state = 886
- self.labelName()
- self.state = 887
- self.match(OpenSCENARIO2Parser.T__8)
-
- self.state = 896
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [
- OpenSCENARIO2Parser.T__44,
- OpenSCENARIO2Parser.T__45,
- OpenSCENARIO2Parser.T__46,
- ]:
- self.state = 891
- self.composition()
- pass
- elif token in [OpenSCENARIO2Parser.Identifier]:
- self.state = 892
- self.behaviorInvocation()
- pass
- elif token in [OpenSCENARIO2Parser.T__47]:
- self.state = 893
- self.waitDirective()
- pass
- elif token in [OpenSCENARIO2Parser.T__48]:
- self.state = 894
- self.emitDirective()
- pass
- elif token in [OpenSCENARIO2Parser.T__49]:
- self.state = 895
- self.callDirective()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class CompositionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def compositionOperator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CompositionOperatorContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def doMember(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.DoMemberContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DoMemberContext, i)
-
- def behaviorWithDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorWithDeclarationContext, 0
- )
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_composition
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterComposition"):
- listener.enterComposition(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitComposition"):
- listener.exitComposition(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitComposition"):
- return visitor.visitComposition(self)
- else:
- return visitor.visitChildren(self)
-
- def composition(self):
- localctx = OpenSCENARIO2Parser.CompositionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 176, self.RULE_composition)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 898
- self.compositionOperator()
- self.state = 904
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 899
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 901
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if (((_la - 60)) & ~0x3F) == 0 and (
- (1 << (_la - 60))
- & (
- (1 << (OpenSCENARIO2Parser.T__59 - 60))
- | (1 << (OpenSCENARIO2Parser.T__64 - 60))
- | (1 << (OpenSCENARIO2Parser.T__72 - 60))
- | (1 << (OpenSCENARIO2Parser.T__76 - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_BRACK - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_PAREN - 60))
- | (1 << (OpenSCENARIO2Parser.StringLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.FloatLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.UintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.BoolLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.Identifier - 60))
- )
- ) != 0:
- self.state = 900
- self.argumentList()
-
- self.state = 903
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
-
- self.state = 906
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 907
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 908
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 910
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 909
- self.doMember()
- self.state = 912
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- (((_la - 45)) & ~0x3F) == 0
- and (
- (1 << (_la - 45))
- & (
- (1 << (OpenSCENARIO2Parser.T__44 - 45))
- | (1 << (OpenSCENARIO2Parser.T__45 - 45))
- | (1 << (OpenSCENARIO2Parser.T__46 - 45))
- | (1 << (OpenSCENARIO2Parser.T__47 - 45))
- | (1 << (OpenSCENARIO2Parser.T__48 - 45))
- | (1 << (OpenSCENARIO2Parser.T__49 - 45))
- | (1 << (OpenSCENARIO2Parser.Identifier - 45))
- )
- )
- != 0
- )
- ):
- break
-
- self.state = 914
- self.match(OpenSCENARIO2Parser.DEDENT)
- self.state = 916
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__37:
- self.state = 915
- self.behaviorWithDeclaration()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class CompositionOperatorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_compositionOperator
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCompositionOperator"):
- listener.enterCompositionOperator(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCompositionOperator"):
- listener.exitCompositionOperator(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCompositionOperator"):
- return visitor.visitCompositionOperator(self)
- else:
- return visitor.visitChildren(self)
-
- def compositionOperator(self):
- localctx = OpenSCENARIO2Parser.CompositionOperatorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 178, self.RULE_compositionOperator)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 918
- _la = self._input.LA(1)
- if not (
- (
- ((_la) & ~0x3F) == 0
- and (
- (1 << _la)
- & (
- (1 << OpenSCENARIO2Parser.T__44)
- | (1 << OpenSCENARIO2Parser.T__45)
- | (1 << OpenSCENARIO2Parser.T__46)
- )
- )
- != 0
- )
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BehaviorInvocationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def behaviorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.BehaviorNameContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def behaviorWithDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorWithDeclarationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def actorExpression(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ActorExpressionContext, 0
- )
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_behaviorInvocation
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBehaviorInvocation"):
- listener.enterBehaviorInvocation(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBehaviorInvocation"):
- listener.exitBehaviorInvocation(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBehaviorInvocation"):
- return visitor.visitBehaviorInvocation(self)
- else:
- return visitor.visitChildren(self)
-
- def behaviorInvocation(self):
- localctx = OpenSCENARIO2Parser.BehaviorInvocationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 180, self.RULE_behaviorInvocation)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 923
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 83, self._ctx)
- if la_ == 1:
- self.state = 920
- self.actorExpression()
- self.state = 921
- self.match(OpenSCENARIO2Parser.T__1)
-
- self.state = 925
- self.behaviorName()
- self.state = 926
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 928
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if (((_la - 60)) & ~0x3F) == 0 and (
- (1 << (_la - 60))
- & (
- (1 << (OpenSCENARIO2Parser.T__59 - 60))
- | (1 << (OpenSCENARIO2Parser.T__64 - 60))
- | (1 << (OpenSCENARIO2Parser.T__72 - 60))
- | (1 << (OpenSCENARIO2Parser.T__76 - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_BRACK - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_PAREN - 60))
- | (1 << (OpenSCENARIO2Parser.StringLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.FloatLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.UintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.BoolLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.Identifier - 60))
- )
- ) != 0:
- self.state = 927
- self.argumentList()
-
- self.state = 930
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 933
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__37]:
- self.state = 931
- self.behaviorWithDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.NEWLINE]:
- self.state = 932
- self.match(OpenSCENARIO2Parser.NEWLINE)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BehaviorWithDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def INDENT(self):
- return self.getToken(OpenSCENARIO2Parser.INDENT, 0)
-
- def DEDENT(self):
- return self.getToken(OpenSCENARIO2Parser.DEDENT, 0)
-
- def behaviorWithMember(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.BehaviorWithMemberContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.BehaviorWithMemberContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_behaviorWithDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBehaviorWithDeclaration"):
- listener.enterBehaviorWithDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBehaviorWithDeclaration"):
- listener.exitBehaviorWithDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBehaviorWithDeclaration"):
- return visitor.visitBehaviorWithDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def behaviorWithDeclaration(self):
- localctx = OpenSCENARIO2Parser.BehaviorWithDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 182, self.RULE_behaviorWithDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 935
- self.match(OpenSCENARIO2Parser.T__37)
- self.state = 936
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 937
- self.match(OpenSCENARIO2Parser.NEWLINE)
- self.state = 938
- self.match(OpenSCENARIO2Parser.INDENT)
- self.state = 940
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 939
- self.behaviorWithMember()
- self.state = 942
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (
- (
- (((_la - 39)) & ~0x3F) == 0
- and (
- (1 << (_la - 39))
- & (
- (1 << (OpenSCENARIO2Parser.T__38 - 39))
- | (1 << (OpenSCENARIO2Parser.T__41 - 39))
- | (1 << (OpenSCENARIO2Parser.T__50 - 39))
- | (1 << (OpenSCENARIO2Parser.Identifier - 39))
- )
- )
- != 0
- )
- ):
- break
-
- self.state = 944
- self.match(OpenSCENARIO2Parser.DEDENT)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class BehaviorWithMemberContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def constraintDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConstraintDeclarationContext, 0
- )
-
- def modifierInvocation(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ModifierInvocationContext, 0
- )
-
- def untilDirective(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.UntilDirectiveContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_behaviorWithMember
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterBehaviorWithMember"):
- listener.enterBehaviorWithMember(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitBehaviorWithMember"):
- listener.exitBehaviorWithMember(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitBehaviorWithMember"):
- return visitor.visitBehaviorWithMember(self)
- else:
- return visitor.visitChildren(self)
-
- def behaviorWithMember(self):
- localctx = OpenSCENARIO2Parser.BehaviorWithMemberContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 184, self.RULE_behaviorWithMember)
- try:
- self.state = 949
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__38, OpenSCENARIO2Parser.T__41]:
- self.enterOuterAlt(localctx, 1)
- self.state = 946
- self.constraintDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.Identifier]:
- self.enterOuterAlt(localctx, 2)
- self.state = 947
- self.modifierInvocation()
- pass
- elif token in [OpenSCENARIO2Parser.T__50]:
- self.enterOuterAlt(localctx, 3)
- self.state = 948
- self.untilDirective()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class LabelNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_labelName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterLabelName"):
- listener.enterLabelName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitLabelName"):
- listener.exitLabelName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitLabelName"):
- return visitor.visitLabelName(self)
- else:
- return visitor.visitChildren(self)
-
- def labelName(self):
- localctx = OpenSCENARIO2Parser.LabelNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 186, self.RULE_labelName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 951
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ActorExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def actorName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ActorNameContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_actorExpression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterActorExpression"):
- listener.enterActorExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitActorExpression"):
- listener.exitActorExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitActorExpression"):
- return visitor.visitActorExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def actorExpression(self):
- localctx = OpenSCENARIO2Parser.ActorExpressionContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 188, self.RULE_actorExpression)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 953
- self.actorName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class WaitDirectiveContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventSpecificationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_waitDirective
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterWaitDirective"):
- listener.enterWaitDirective(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitWaitDirective"):
- listener.exitWaitDirective(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitWaitDirective"):
- return visitor.visitWaitDirective(self)
- else:
- return visitor.visitChildren(self)
-
- def waitDirective(self):
- localctx = OpenSCENARIO2Parser.WaitDirectiveContext(self, self._ctx, self.state)
- self.enterRule(localctx, 190, self.RULE_waitDirective)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 955
- self.match(OpenSCENARIO2Parser.T__47)
- self.state = 956
- self.eventSpecification()
- self.state = 957
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class EmitDirectiveContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EventNameContext, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_emitDirective
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterEmitDirective"):
- listener.enterEmitDirective(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitEmitDirective"):
- listener.exitEmitDirective(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitEmitDirective"):
- return visitor.visitEmitDirective(self)
- else:
- return visitor.visitChildren(self)
-
- def emitDirective(self):
- localctx = OpenSCENARIO2Parser.EmitDirectiveContext(self, self._ctx, self.state)
- self.enterRule(localctx, 192, self.RULE_emitDirective)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 959
- self.match(OpenSCENARIO2Parser.T__48)
- self.state = 960
- self.eventName()
- self.state = 965
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.OPEN_PAREN:
- self.state = 961
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 962
- self.argumentList()
- self.state = 963
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
-
- self.state = 967
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class CallDirectiveContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def methodInvocation(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MethodInvocationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_callDirective
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCallDirective"):
- listener.enterCallDirective(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCallDirective"):
- listener.exitCallDirective(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCallDirective"):
- return visitor.visitCallDirective(self)
- else:
- return visitor.visitChildren(self)
-
- def callDirective(self):
- localctx = OpenSCENARIO2Parser.CallDirectiveContext(self, self._ctx, self.state)
- self.enterRule(localctx, 194, self.RULE_callDirective)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 969
- self.match(OpenSCENARIO2Parser.T__49)
- self.state = 970
- self.methodInvocation()
- self.state = 971
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class UntilDirectiveContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def eventSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EventSpecificationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_untilDirective
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterUntilDirective"):
- listener.enterUntilDirective(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitUntilDirective"):
- listener.exitUntilDirective(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitUntilDirective"):
- return visitor.visitUntilDirective(self)
- else:
- return visitor.visitChildren(self)
-
- def untilDirective(self):
- localctx = OpenSCENARIO2Parser.UntilDirectiveContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 196, self.RULE_untilDirective)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 973
- self.match(OpenSCENARIO2Parser.T__50)
- self.state = 974
- self.eventSpecification()
- self.state = 975
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class MethodInvocationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_methodInvocation
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMethodInvocation"):
- listener.enterMethodInvocation(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMethodInvocation"):
- listener.exitMethodInvocation(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMethodInvocation"):
- return visitor.visitMethodInvocation(self)
- else:
- return visitor.visitChildren(self)
-
- def methodInvocation(self):
- localctx = OpenSCENARIO2Parser.MethodInvocationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 198, self.RULE_methodInvocation)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 977
- self.postfixExp(0)
- self.state = 978
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 980
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if (((_la - 60)) & ~0x3F) == 0 and (
- (1 << (_la - 60))
- & (
- (1 << (OpenSCENARIO2Parser.T__59 - 60))
- | (1 << (OpenSCENARIO2Parser.T__64 - 60))
- | (1 << (OpenSCENARIO2Parser.T__72 - 60))
- | (1 << (OpenSCENARIO2Parser.T__76 - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_BRACK - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_PAREN - 60))
- | (1 << (OpenSCENARIO2Parser.StringLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.FloatLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.UintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.BoolLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.Identifier - 60))
- )
- ) != 0:
- self.state = 979
- self.argumentList()
-
- self.state = 982
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class MethodDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def methodName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.MethodNameContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def methodImplementation(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MethodImplementationContext, 0
- )
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def argumentListSpecification(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ArgumentListSpecificationContext, 0
- )
-
- def returnType(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ReturnTypeContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_methodDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMethodDeclaration"):
- listener.enterMethodDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMethodDeclaration"):
- listener.exitMethodDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMethodDeclaration"):
- return visitor.visitMethodDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def methodDeclaration(self):
- localctx = OpenSCENARIO2Parser.MethodDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 200, self.RULE_methodDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 984
- self.match(OpenSCENARIO2Parser.T__51)
- self.state = 985
- self.methodName()
- self.state = 986
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 988
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.Identifier:
- self.state = 987
- self.argumentListSpecification()
-
- self.state = 990
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 993
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__52:
- self.state = 991
- self.match(OpenSCENARIO2Parser.T__52)
- self.state = 992
- self.returnType()
-
- self.state = 995
- self.methodImplementation()
- self.state = 996
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ReturnTypeContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_returnType
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterReturnType"):
- listener.enterReturnType(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitReturnType"):
- listener.exitReturnType(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitReturnType"):
- return visitor.visitReturnType(self)
- else:
- return visitor.visitChildren(self)
-
- def returnType(self):
- localctx = OpenSCENARIO2Parser.ReturnTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 202, self.RULE_returnType)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 998
- self.typeDeclarator()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class MethodImplementationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def structuredIdentifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.StructuredIdentifierContext, 0
- )
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def methodQualifier(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MethodQualifierContext, 0
- )
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_methodImplementation
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMethodImplementation"):
- listener.enterMethodImplementation(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMethodImplementation"):
- listener.exitMethodImplementation(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMethodImplementation"):
- return visitor.visitMethodImplementation(self)
- else:
- return visitor.visitChildren(self)
-
- def methodImplementation(self):
- localctx = OpenSCENARIO2Parser.MethodImplementationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 204, self.RULE_methodImplementation)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1000
- self.match(OpenSCENARIO2Parser.T__3)
- self.state = 1002
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__56:
- self.state = 1001
- self.methodQualifier()
-
- self.state = 1015
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__53]:
- self.state = 1004
- self.match(OpenSCENARIO2Parser.T__53)
- self.state = 1005
- self.expression()
- pass
- elif token in [OpenSCENARIO2Parser.T__54]:
- self.state = 1006
- self.match(OpenSCENARIO2Parser.T__54)
- pass
- elif token in [OpenSCENARIO2Parser.T__55]:
- self.state = 1007
- self.match(OpenSCENARIO2Parser.T__55)
- self.state = 1008
- self.structuredIdentifier(0)
- self.state = 1009
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1011
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if (((_la - 60)) & ~0x3F) == 0 and (
- (1 << (_la - 60))
- & (
- (1 << (OpenSCENARIO2Parser.T__59 - 60))
- | (1 << (OpenSCENARIO2Parser.T__64 - 60))
- | (1 << (OpenSCENARIO2Parser.T__72 - 60))
- | (1 << (OpenSCENARIO2Parser.T__76 - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_BRACK - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_PAREN - 60))
- | (1 << (OpenSCENARIO2Parser.StringLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.FloatLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.UintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.BoolLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.Identifier - 60))
- )
- ) != 0:
- self.state = 1010
- self.argumentList()
-
- self.state = 1013
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class MethodQualifierContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_methodQualifier
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMethodQualifier"):
- listener.enterMethodQualifier(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMethodQualifier"):
- listener.exitMethodQualifier(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMethodQualifier"):
- return visitor.visitMethodQualifier(self)
- else:
- return visitor.visitChildren(self)
-
- def methodQualifier(self):
- localctx = OpenSCENARIO2Parser.MethodQualifierContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 206, self.RULE_methodQualifier)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1017
- self.match(OpenSCENARIO2Parser.T__56)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class MethodNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_methodName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMethodName"):
- listener.enterMethodName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMethodName"):
- listener.exitMethodName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMethodName"):
- return visitor.visitMethodName(self)
- else:
- return visitor.visitChildren(self)
-
- def methodName(self):
- localctx = OpenSCENARIO2Parser.MethodNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 208, self.RULE_methodName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1019
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class CoverageDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def coverDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverDeclarationContext, 0
- )
-
- def recordDeclaration(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.RecordDeclarationContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_coverageDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageDeclaration"):
- listener.enterCoverageDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageDeclaration"):
- listener.exitCoverageDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageDeclaration"):
- return visitor.visitCoverageDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def coverageDeclaration(self):
- localctx = OpenSCENARIO2Parser.CoverageDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 210, self.RULE_coverageDeclaration)
- try:
- self.state = 1023
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__57]:
- self.enterOuterAlt(localctx, 1)
- self.state = 1021
- self.coverDeclaration()
- pass
- elif token in [OpenSCENARIO2Parser.T__58]:
- self.enterOuterAlt(localctx, 2)
- self.state = 1022
- self.recordDeclaration()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class CoverDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def targetName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TargetNameContext, 0)
-
- def coverageArgumentList(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.CoverageArgumentListContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverageArgumentListContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_coverDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverDeclaration"):
- listener.enterCoverDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverDeclaration"):
- listener.exitCoverDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverDeclaration"):
- return visitor.visitCoverDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def coverDeclaration(self):
- localctx = OpenSCENARIO2Parser.CoverDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 212, self.RULE_coverDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1025
- self.match(OpenSCENARIO2Parser.T__57)
- self.state = 1026
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1028
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.Identifier:
- self.state = 1027
- self.targetName()
-
- self.state = 1033
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 1030
- self.coverageArgumentList()
- self.state = 1035
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 1036
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 1037
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class RecordDeclarationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def NEWLINE(self):
- return self.getToken(OpenSCENARIO2Parser.NEWLINE, 0)
-
- def targetName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TargetNameContext, 0)
-
- def coverageArgumentList(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.CoverageArgumentListContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.CoverageArgumentListContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_recordDeclaration
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterRecordDeclaration"):
- listener.enterRecordDeclaration(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitRecordDeclaration"):
- listener.exitRecordDeclaration(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitRecordDeclaration"):
- return visitor.visitRecordDeclaration(self)
- else:
- return visitor.visitChildren(self)
-
- def recordDeclaration(self):
- localctx = OpenSCENARIO2Parser.RecordDeclarationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 214, self.RULE_recordDeclaration)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1039
- self.match(OpenSCENARIO2Parser.T__58)
- self.state = 1040
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1042
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.Identifier:
- self.state = 1041
- self.targetName()
-
- self.state = 1047
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 1044
- self.coverageArgumentList()
- self.state = 1049
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 1050
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- self.state = 1051
- self.match(OpenSCENARIO2Parser.NEWLINE)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class CoverageArgumentListContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_coverageArgumentList
-
- def copyFrom(self, ctx: ParserRuleContext):
- super().copyFrom(ctx)
-
- class CoverageEventContext(CoverageArgumentListContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.CoverageArgumentListContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def eventName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.EventNameContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageEvent"):
- listener.enterCoverageEvent(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageEvent"):
- listener.exitCoverageEvent(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageEvent"):
- return visitor.visitCoverageEvent(self)
- else:
- return visitor.visitChildren(self)
-
- class CoverageEveryContext(CoverageArgumentListContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.CoverageArgumentListContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def valueExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ValueExpContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageEvery"):
- listener.enterCoverageEvery(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageEvery"):
- listener.exitCoverageEvery(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageEvery"):
- return visitor.visitCoverageEvery(self)
- else:
- return visitor.visitChildren(self)
-
- class CoverageNameArgumentContext(CoverageArgumentListContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.CoverageArgumentListContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def namedArgument(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.NamedArgumentContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageNameArgument"):
- listener.enterCoverageNameArgument(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageNameArgument"):
- listener.exitCoverageNameArgument(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageNameArgument"):
- return visitor.visitCoverageNameArgument(self)
- else:
- return visitor.visitChildren(self)
-
- class CoverageExpressionContext(CoverageArgumentListContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.CoverageArgumentListContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageExpression"):
- listener.enterCoverageExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageExpression"):
- listener.exitCoverageExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageExpression"):
- return visitor.visitCoverageExpression(self)
- else:
- return visitor.visitChildren(self)
-
- class CoverageRangeContext(CoverageArgumentListContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.CoverageArgumentListContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def rangeConstructor(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.RangeConstructorContext, 0
- )
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageRange"):
- listener.enterCoverageRange(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageRange"):
- listener.exitCoverageRange(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageRange"):
- return visitor.visitCoverageRange(self)
- else:
- return visitor.visitChildren(self)
-
- class CoverageUnitContext(CoverageArgumentListContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.CoverageArgumentListContext
- super().__init__(parser)
- self.unitName = None # Token
- self.copyFrom(ctx)
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCoverageUnit"):
- listener.enterCoverageUnit(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCoverageUnit"):
- listener.exitCoverageUnit(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCoverageUnit"):
- return visitor.visitCoverageUnit(self)
- else:
- return visitor.visitChildren(self)
-
- def coverageArgumentList(self):
- localctx = OpenSCENARIO2Parser.CoverageArgumentListContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 216, self.RULE_coverageArgumentList)
- try:
- self.state = 1075
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 100, self._ctx)
- if la_ == 1:
- localctx = OpenSCENARIO2Parser.CoverageExpressionContext(self, localctx)
- self.enterOuterAlt(localctx, 1)
- self.state = 1053
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1054
- self.match(OpenSCENARIO2Parser.T__53)
- self.state = 1055
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1056
- self.expression()
- pass
-
- elif la_ == 2:
- localctx = OpenSCENARIO2Parser.CoverageUnitContext(self, localctx)
- self.enterOuterAlt(localctx, 2)
- self.state = 1057
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1058
- self.match(OpenSCENARIO2Parser.T__5)
- self.state = 1059
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1060
- localctx.unitName = self.match(OpenSCENARIO2Parser.Identifier)
- pass
-
- elif la_ == 3:
- localctx = OpenSCENARIO2Parser.CoverageRangeContext(self, localctx)
- self.enterOuterAlt(localctx, 3)
- self.state = 1061
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1062
- self.match(OpenSCENARIO2Parser.T__59)
- self.state = 1063
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1064
- self.rangeConstructor()
- pass
-
- elif la_ == 4:
- localctx = OpenSCENARIO2Parser.CoverageEveryContext(self, localctx)
- self.enterOuterAlt(localctx, 4)
- self.state = 1065
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1066
- self.match(OpenSCENARIO2Parser.T__34)
- self.state = 1067
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1068
- self.valueExp()
- pass
-
- elif la_ == 5:
- localctx = OpenSCENARIO2Parser.CoverageEventContext(self, localctx)
- self.enterOuterAlt(localctx, 5)
- self.state = 1069
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1070
- self.match(OpenSCENARIO2Parser.T__27)
- self.state = 1071
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1072
- self.eventName()
- pass
-
- elif la_ == 6:
- localctx = OpenSCENARIO2Parser.CoverageNameArgumentContext(
- self, localctx
- )
- self.enterOuterAlt(localctx, 6)
- self.state = 1073
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1074
- self.namedArgument()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class TargetNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_targetName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTargetName"):
- listener.enterTargetName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTargetName"):
- listener.exitTargetName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTargetName"):
- return visitor.visitTargetName(self)
- else:
- return visitor.visitChildren(self)
-
- def targetName(self):
- localctx = OpenSCENARIO2Parser.TargetNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 218, self.RULE_targetName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1077
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ExpressionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def implication(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ImplicationContext, 0)
-
- def ternaryOpExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TernaryOpExpContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_expression
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterExpression"):
- listener.enterExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitExpression"):
- listener.exitExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitExpression"):
- return visitor.visitExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def expression(self):
- localctx = OpenSCENARIO2Parser.ExpressionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 220, self.RULE_expression)
- try:
- self.state = 1081
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 101, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 1079
- self.implication()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 1080
- self.ternaryOpExp()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class TernaryOpExpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def implication(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ImplicationContext, 0)
-
- def expression(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.ExpressionContext)
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ExpressionContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_ternaryOpExp
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTernaryOpExp"):
- listener.enterTernaryOpExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTernaryOpExp"):
- listener.exitTernaryOpExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTernaryOpExp"):
- return visitor.visitTernaryOpExp(self)
- else:
- return visitor.visitChildren(self)
-
- def ternaryOpExp(self):
- localctx = OpenSCENARIO2Parser.TernaryOpExpContext(self, self._ctx, self.state)
- self.enterRule(localctx, 222, self.RULE_ternaryOpExp)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1083
- self.implication()
- self.state = 1084
- self.match(OpenSCENARIO2Parser.T__60)
- self.state = 1085
- self.expression()
- self.state = 1086
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1087
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ImplicationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def disjunction(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.DisjunctionContext)
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.DisjunctionContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_implication
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterImplication"):
- listener.enterImplication(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitImplication"):
- listener.exitImplication(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitImplication"):
- return visitor.visitImplication(self)
- else:
- return visitor.visitChildren(self)
-
- def implication(self):
- localctx = OpenSCENARIO2Parser.ImplicationContext(self, self._ctx, self.state)
- self.enterRule(localctx, 224, self.RULE_implication)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1089
- self.disjunction()
- self.state = 1094
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__61:
- self.state = 1090
- self.match(OpenSCENARIO2Parser.T__61)
- self.state = 1091
- self.disjunction()
- self.state = 1096
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class DisjunctionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def conjunction(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.ConjunctionContext)
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ConjunctionContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_disjunction
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterDisjunction"):
- listener.enterDisjunction(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitDisjunction"):
- listener.exitDisjunction(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitDisjunction"):
- return visitor.visitDisjunction(self)
- else:
- return visitor.visitChildren(self)
-
- def disjunction(self):
- localctx = OpenSCENARIO2Parser.DisjunctionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 226, self.RULE_disjunction)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1097
- self.conjunction()
- self.state = 1102
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__62:
- self.state = 1098
- self.match(OpenSCENARIO2Parser.T__62)
- self.state = 1099
- self.conjunction()
- self.state = 1104
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ConjunctionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def inversion(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.InversionContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.InversionContext, i)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_conjunction
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterConjunction"):
- listener.enterConjunction(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitConjunction"):
- listener.exitConjunction(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitConjunction"):
- return visitor.visitConjunction(self)
- else:
- return visitor.visitChildren(self)
-
- def conjunction(self):
- localctx = OpenSCENARIO2Parser.ConjunctionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 228, self.RULE_conjunction)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1105
- self.inversion()
- self.state = 1110
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__63:
- self.state = 1106
- self.match(OpenSCENARIO2Parser.T__63)
- self.state = 1107
- self.inversion()
- self.state = 1112
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class InversionContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def inversion(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.InversionContext, 0)
-
- def relation(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.RelationContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_inversion
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterInversion"):
- listener.enterInversion(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitInversion"):
- listener.exitInversion(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitInversion"):
- return visitor.visitInversion(self)
- else:
- return visitor.visitChildren(self)
-
- def inversion(self):
- localctx = OpenSCENARIO2Parser.InversionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 230, self.RULE_inversion)
- try:
- self.state = 1116
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__64]:
- self.enterOuterAlt(localctx, 1)
- self.state = 1113
- self.match(OpenSCENARIO2Parser.T__64)
- self.state = 1114
- self.inversion()
- pass
- elif token in [
- OpenSCENARIO2Parser.T__59,
- OpenSCENARIO2Parser.T__72,
- OpenSCENARIO2Parser.T__76,
- OpenSCENARIO2Parser.OPEN_BRACK,
- OpenSCENARIO2Parser.OPEN_PAREN,
- OpenSCENARIO2Parser.StringLiteral,
- OpenSCENARIO2Parser.FloatLiteral,
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- OpenSCENARIO2Parser.BoolLiteral,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.enterOuterAlt(localctx, 2)
- self.state = 1115
- self.relation(0)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class RelationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_relation
-
- def copyFrom(self, ctx: ParserRuleContext):
- super().copyFrom(ctx)
-
- class RelationExpContext(RelationContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.RelationContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def relation(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.RelationContext, 0)
-
- def relationalOp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.RelationalOpContext, 0)
-
- def sum_(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.SumContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterRelationExp"):
- listener.enterRelationExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitRelationExp"):
- listener.exitRelationExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitRelationExp"):
- return visitor.visitRelationExp(self)
- else:
- return visitor.visitChildren(self)
-
- class SumExpContext(RelationContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.RelationContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def sum_(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.SumContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterSumExp"):
- listener.enterSumExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitSumExp"):
- listener.exitSumExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitSumExp"):
- return visitor.visitSumExp(self)
- else:
- return visitor.visitChildren(self)
-
- def relation(self, _p: int = 0):
- _parentctx = self._ctx
- _parentState = self.state
- localctx = OpenSCENARIO2Parser.RelationContext(self, self._ctx, _parentState)
- _prevctx = localctx
- _startState = 232
- self.enterRecursionRule(localctx, 232, self.RULE_relation, _p)
- try:
- self.enterOuterAlt(localctx, 1)
- localctx = OpenSCENARIO2Parser.SumExpContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
-
- self.state = 1119
- self.sum_(0)
- self._ctx.stop = self._input.LT(-1)
- self.state = 1127
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 106, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- if self._parseListeners is not None:
- self.triggerExitRuleEvent()
- _prevctx = localctx
- localctx = OpenSCENARIO2Parser.RelationExpContext(
- self,
- OpenSCENARIO2Parser.RelationContext(
- self, _parentctx, _parentState
- ),
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_relation
- )
- self.state = 1121
- if not self.precpred(self._ctx, 1):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 1)"
- )
- self.state = 1122
- self.relationalOp()
- self.state = 1123
- self.sum_(0)
- self.state = 1129
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 106, self._ctx)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.unrollRecursionContexts(_parentctx)
- return localctx
-
- class RelationalOpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_relationalOp
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterRelationalOp"):
- listener.enterRelationalOp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitRelationalOp"):
- listener.exitRelationalOp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitRelationalOp"):
- return visitor.visitRelationalOp(self)
- else:
- return visitor.visitChildren(self)
-
- def relationalOp(self):
- localctx = OpenSCENARIO2Parser.RelationalOpContext(self, self._ctx, self.state)
- self.enterRule(localctx, 234, self.RULE_relationalOp)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1130
- _la = self._input.LA(1)
- if not (
- (
- (((_la - 13)) & ~0x3F) == 0
- and (
- (1 << (_la - 13))
- & (
- (1 << (OpenSCENARIO2Parser.T__12 - 13))
- | (1 << (OpenSCENARIO2Parser.T__65 - 13))
- | (1 << (OpenSCENARIO2Parser.T__66 - 13))
- | (1 << (OpenSCENARIO2Parser.T__67 - 13))
- | (1 << (OpenSCENARIO2Parser.T__68 - 13))
- | (1 << (OpenSCENARIO2Parser.T__69 - 13))
- | (1 << (OpenSCENARIO2Parser.T__70 - 13))
- )
- )
- != 0
- )
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class SumContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_sum
-
- def copyFrom(self, ctx: ParserRuleContext):
- super().copyFrom(ctx)
-
- class TermExpContext(SumContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.SumContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def term(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TermContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTermExp"):
- listener.enterTermExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTermExp"):
- listener.exitTermExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTermExp"):
- return visitor.visitTermExp(self)
- else:
- return visitor.visitChildren(self)
-
- class AdditiveExpContext(SumContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.SumContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def sum_(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.SumContext, 0)
-
- def additiveOp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.AdditiveOpContext, 0)
-
- def term(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TermContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterAdditiveExp"):
- listener.enterAdditiveExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitAdditiveExp"):
- listener.exitAdditiveExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitAdditiveExp"):
- return visitor.visitAdditiveExp(self)
- else:
- return visitor.visitChildren(self)
-
- def sum_(self, _p: int = 0):
- _parentctx = self._ctx
- _parentState = self.state
- localctx = OpenSCENARIO2Parser.SumContext(self, self._ctx, _parentState)
- _prevctx = localctx
- _startState = 236
- self.enterRecursionRule(localctx, 236, self.RULE_sum, _p)
- try:
- self.enterOuterAlt(localctx, 1)
- localctx = OpenSCENARIO2Parser.TermExpContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
-
- self.state = 1133
- self.term(0)
- self._ctx.stop = self._input.LT(-1)
- self.state = 1141
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 107, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- if self._parseListeners is not None:
- self.triggerExitRuleEvent()
- _prevctx = localctx
- localctx = OpenSCENARIO2Parser.AdditiveExpContext(
- self,
- OpenSCENARIO2Parser.SumContext(self, _parentctx, _parentState),
- )
- self.pushNewRecursionContext(localctx, _startState, self.RULE_sum)
- self.state = 1135
- if not self.precpred(self._ctx, 1):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 1)"
- )
- self.state = 1136
- self.additiveOp()
- self.state = 1137
- self.term(0)
- self.state = 1143
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 107, self._ctx)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.unrollRecursionContexts(_parentctx)
- return localctx
-
- class AdditiveOpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_additiveOp
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterAdditiveOp"):
- listener.enterAdditiveOp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitAdditiveOp"):
- listener.exitAdditiveOp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitAdditiveOp"):
- return visitor.visitAdditiveOp(self)
- else:
- return visitor.visitChildren(self)
-
- def additiveOp(self):
- localctx = OpenSCENARIO2Parser.AdditiveOpContext(self, self._ctx, self.state)
- self.enterRule(localctx, 238, self.RULE_additiveOp)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1144
- _la = self._input.LA(1)
- if not (
- _la == OpenSCENARIO2Parser.T__71 or _la == OpenSCENARIO2Parser.T__72
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class TermContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_term
-
- def copyFrom(self, ctx: ParserRuleContext):
- super().copyFrom(ctx)
-
- class MultiplicativeExpContext(TermContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.TermContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def term(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.TermContext, 0)
-
- def multiplicativeOp(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.MultiplicativeOpContext, 0
- )
-
- def factor(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FactorContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMultiplicativeExp"):
- listener.enterMultiplicativeExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMultiplicativeExp"):
- listener.exitMultiplicativeExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMultiplicativeExp"):
- return visitor.visitMultiplicativeExp(self)
- else:
- return visitor.visitChildren(self)
-
- class FactorExpContext(TermContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.TermContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def factor(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FactorContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFactorExp"):
- listener.enterFactorExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFactorExp"):
- listener.exitFactorExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFactorExp"):
- return visitor.visitFactorExp(self)
- else:
- return visitor.visitChildren(self)
-
- def term(self, _p: int = 0):
- _parentctx = self._ctx
- _parentState = self.state
- localctx = OpenSCENARIO2Parser.TermContext(self, self._ctx, _parentState)
- _prevctx = localctx
- _startState = 240
- self.enterRecursionRule(localctx, 240, self.RULE_term, _p)
- try:
- self.enterOuterAlt(localctx, 1)
- localctx = OpenSCENARIO2Parser.FactorExpContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
-
- self.state = 1147
- self.factor()
- self._ctx.stop = self._input.LT(-1)
- self.state = 1155
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 108, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- if self._parseListeners is not None:
- self.triggerExitRuleEvent()
- _prevctx = localctx
- localctx = OpenSCENARIO2Parser.MultiplicativeExpContext(
- self,
- OpenSCENARIO2Parser.TermContext(self, _parentctx, _parentState),
- )
- self.pushNewRecursionContext(localctx, _startState, self.RULE_term)
- self.state = 1149
- if not self.precpred(self._ctx, 1):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 1)"
- )
- self.state = 1150
- self.multiplicativeOp()
- self.state = 1151
- self.factor()
- self.state = 1157
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 108, self._ctx)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.unrollRecursionContexts(_parentctx)
- return localctx
-
- class MultiplicativeOpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_multiplicativeOp
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterMultiplicativeOp"):
- listener.enterMultiplicativeOp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitMultiplicativeOp"):
- listener.exitMultiplicativeOp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitMultiplicativeOp"):
- return visitor.visitMultiplicativeOp(self)
- else:
- return visitor.visitChildren(self)
-
- def multiplicativeOp(self):
- localctx = OpenSCENARIO2Parser.MultiplicativeOpContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 242, self.RULE_multiplicativeOp)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1158
- _la = self._input.LA(1)
- if not (
- (
- (((_la - 74)) & ~0x3F) == 0
- and (
- (1 << (_la - 74))
- & (
- (1 << (OpenSCENARIO2Parser.T__73 - 74))
- | (1 << (OpenSCENARIO2Parser.T__74 - 74))
- | (1 << (OpenSCENARIO2Parser.T__75 - 74))
- )
- )
- != 0
- )
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class FactorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def factor(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FactorContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_factor
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFactor"):
- listener.enterFactor(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFactor"):
- listener.exitFactor(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFactor"):
- return visitor.visitFactor(self)
- else:
- return visitor.visitChildren(self)
-
- def factor(self):
- localctx = OpenSCENARIO2Parser.FactorContext(self, self._ctx, self.state)
- self.enterRule(localctx, 244, self.RULE_factor)
- try:
- self.state = 1163
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [
- OpenSCENARIO2Parser.T__59,
- OpenSCENARIO2Parser.T__76,
- OpenSCENARIO2Parser.OPEN_BRACK,
- OpenSCENARIO2Parser.OPEN_PAREN,
- OpenSCENARIO2Parser.StringLiteral,
- OpenSCENARIO2Parser.FloatLiteral,
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- OpenSCENARIO2Parser.BoolLiteral,
- OpenSCENARIO2Parser.Identifier,
- ]:
- self.enterOuterAlt(localctx, 1)
- self.state = 1160
- self.postfixExp(0)
- pass
- elif token in [OpenSCENARIO2Parser.T__72]:
- self.enterOuterAlt(localctx, 2)
- self.state = 1161
- self.match(OpenSCENARIO2Parser.T__72)
- self.state = 1162
- self.factor()
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PostfixExpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_postfixExp
-
- def copyFrom(self, ctx: ParserRuleContext):
- super().copyFrom(ctx)
-
- class PrimaryExpressionContext(PostfixExpContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.PostfixExpContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def primaryExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PrimaryExpContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPrimaryExpression"):
- listener.enterPrimaryExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPrimaryExpression"):
- listener.exitPrimaryExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPrimaryExpression"):
- return visitor.visitPrimaryExpression(self)
- else:
- return visitor.visitChildren(self)
-
- class CastExpressionContext(PostfixExpContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.PostfixExpContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterCastExpression"):
- listener.enterCastExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitCastExpression"):
- listener.exitCastExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitCastExpression"):
- return visitor.visitCastExpression(self)
- else:
- return visitor.visitChildren(self)
-
- class FunctionApplicationExpressionContext(PostfixExpContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.PostfixExpContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def argumentList(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentListContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFunctionApplicationExpression"):
- listener.enterFunctionApplicationExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFunctionApplicationExpression"):
- listener.exitFunctionApplicationExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFunctionApplicationExpression"):
- return visitor.visitFunctionApplicationExpression(self)
- else:
- return visitor.visitChildren(self)
-
- class FieldAccessExpressionContext(PostfixExpContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.PostfixExpContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def fieldName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFieldAccessExpression"):
- listener.enterFieldAccessExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFieldAccessExpression"):
- listener.exitFieldAccessExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFieldAccessExpression"):
- return visitor.visitFieldAccessExpression(self)
- else:
- return visitor.visitChildren(self)
-
- class ElementAccessExpressionContext(PostfixExpContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.PostfixExpContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def OPEN_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0)
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def CLOSE_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterElementAccessExpression"):
- listener.enterElementAccessExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitElementAccessExpression"):
- listener.exitElementAccessExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitElementAccessExpression"):
- return visitor.visitElementAccessExpression(self)
- else:
- return visitor.visitChildren(self)
-
- class TypeTestExpressionContext(PostfixExpContext):
- def __init__(
- self, parser, ctx: ParserRuleContext
- ): # actually a OpenSCENARIO2Parser.PostfixExpContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterTypeTestExpression"):
- listener.enterTypeTestExpression(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitTypeTestExpression"):
- listener.exitTypeTestExpression(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitTypeTestExpression"):
- return visitor.visitTypeTestExpression(self)
- else:
- return visitor.visitChildren(self)
-
- def postfixExp(self, _p: int = 0):
- _parentctx = self._ctx
- _parentState = self.state
- localctx = OpenSCENARIO2Parser.PostfixExpContext(self, self._ctx, _parentState)
- _prevctx = localctx
- _startState = 246
- self.enterRecursionRule(localctx, 246, self.RULE_postfixExp, _p)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- localctx = OpenSCENARIO2Parser.PrimaryExpressionContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
-
- self.state = 1166
- self.primaryExp()
- self._ctx.stop = self._input.LT(-1)
- self.state = 1198
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 112, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- if self._parseListeners is not None:
- self.triggerExitRuleEvent()
- _prevctx = localctx
- self.state = 1196
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 111, self._ctx)
- if la_ == 1:
- localctx = OpenSCENARIO2Parser.CastExpressionContext(
- self,
- OpenSCENARIO2Parser.PostfixExpContext(
- self, _parentctx, _parentState
- ),
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_postfixExp
- )
- self.state = 1168
- if not self.precpred(self._ctx, 5):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 5)"
- )
- self.state = 1169
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 1170
- self.match(OpenSCENARIO2Parser.T__30)
- self.state = 1171
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1172
- self.typeDeclarator()
- self.state = 1173
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- pass
-
- elif la_ == 2:
- localctx = OpenSCENARIO2Parser.TypeTestExpressionContext(
- self,
- OpenSCENARIO2Parser.PostfixExpContext(
- self, _parentctx, _parentState
- ),
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_postfixExp
- )
- self.state = 1175
- if not self.precpred(self._ctx, 4):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 4)"
- )
- self.state = 1176
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 1177
- self.match(OpenSCENARIO2Parser.T__3)
- self.state = 1178
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1179
- self.typeDeclarator()
- self.state = 1180
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- pass
-
- elif la_ == 3:
- localctx = OpenSCENARIO2Parser.ElementAccessExpressionContext(
- self,
- OpenSCENARIO2Parser.PostfixExpContext(
- self, _parentctx, _parentState
- ),
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_postfixExp
- )
- self.state = 1182
- if not self.precpred(self._ctx, 3):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 3)"
- )
- self.state = 1183
- self.match(OpenSCENARIO2Parser.OPEN_BRACK)
- self.state = 1184
- self.expression()
- self.state = 1185
- self.match(OpenSCENARIO2Parser.CLOSE_BRACK)
- pass
-
- elif la_ == 4:
- localctx = (
- OpenSCENARIO2Parser.FunctionApplicationExpressionContext(
- self,
- OpenSCENARIO2Parser.PostfixExpContext(
- self, _parentctx, _parentState
- ),
- )
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_postfixExp
- )
- self.state = 1187
- if not self.precpred(self._ctx, 2):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 2)"
- )
- self.state = 1188
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1190
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if (((_la - 60)) & ~0x3F) == 0 and (
- (1 << (_la - 60))
- & (
- (1 << (OpenSCENARIO2Parser.T__59 - 60))
- | (1 << (OpenSCENARIO2Parser.T__64 - 60))
- | (1 << (OpenSCENARIO2Parser.T__72 - 60))
- | (1 << (OpenSCENARIO2Parser.T__76 - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_BRACK - 60))
- | (1 << (OpenSCENARIO2Parser.OPEN_PAREN - 60))
- | (1 << (OpenSCENARIO2Parser.StringLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.FloatLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.UintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.BoolLiteral - 60))
- | (1 << (OpenSCENARIO2Parser.Identifier - 60))
- )
- ) != 0:
- self.state = 1189
- self.argumentList()
-
- self.state = 1192
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- pass
-
- elif la_ == 5:
- localctx = OpenSCENARIO2Parser.FieldAccessExpressionContext(
- self,
- OpenSCENARIO2Parser.PostfixExpContext(
- self, _parentctx, _parentState
- ),
- )
- self.pushNewRecursionContext(
- localctx, _startState, self.RULE_postfixExp
- )
- self.state = 1193
- if not self.precpred(self._ctx, 1):
- from antlr4.error.Errors import FailedPredicateException
-
- raise FailedPredicateException(
- self, "self.precpred(self._ctx, 1)"
- )
- self.state = 1194
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 1195
- self.fieldName()
- pass
-
- self.state = 1200
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 112, self._ctx)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.unrollRecursionContexts(_parentctx)
- return localctx
-
- class FieldAccessContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def postfixExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.PostfixExpContext, 0)
-
- def fieldName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_fieldAccess
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterFieldAccess"):
- listener.enterFieldAccess(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitFieldAccess"):
- listener.exitFieldAccess(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitFieldAccess"):
- return visitor.visitFieldAccess(self)
- else:
- return visitor.visitChildren(self)
-
- def fieldAccess(self):
- localctx = OpenSCENARIO2Parser.FieldAccessContext(self, self._ctx, self.state)
- self.enterRule(localctx, 248, self.RULE_fieldAccess)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1201
- self.postfixExp(0)
- self.state = 1202
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 1203
- self.fieldName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PrimaryExpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def valueExp(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ValueExpContext, 0)
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_primaryExp
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPrimaryExp"):
- listener.enterPrimaryExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPrimaryExp"):
- listener.exitPrimaryExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPrimaryExp"):
- return visitor.visitPrimaryExp(self)
- else:
- return visitor.visitChildren(self)
-
- def primaryExp(self):
- localctx = OpenSCENARIO2Parser.PrimaryExpContext(self, self._ctx, self.state)
- self.enterRule(localctx, 250, self.RULE_primaryExp)
- try:
- self.state = 1212
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 113, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 1205
- self.valueExp()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 1206
- self.match(OpenSCENARIO2Parser.T__76)
- pass
-
- elif la_ == 3:
- self.enterOuterAlt(localctx, 3)
- self.state = 1207
- self.match(OpenSCENARIO2Parser.Identifier)
- pass
-
- elif la_ == 4:
- self.enterOuterAlt(localctx, 4)
- self.state = 1208
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1209
- self.expression()
- self.state = 1210
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ValueExpContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def physicalLiteral(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.PhysicalLiteralContext, 0
- )
-
- def FloatLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.FloatLiteral, 0)
-
- def integerLiteral(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.IntegerLiteralContext, 0
- )
-
- def BoolLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.BoolLiteral, 0)
-
- def StringLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.StringLiteral, 0)
-
- def identifierReference(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.IdentifierReferenceContext, 0
- )
-
- def enumValueReference(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.EnumValueReferenceContext, 0
- )
-
- def listConstructor(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ListConstructorContext, 0
- )
-
- def rangeConstructor(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.RangeConstructorContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_valueExp
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterValueExp"):
- listener.enterValueExp(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitValueExp"):
- listener.exitValueExp(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitValueExp"):
- return visitor.visitValueExp(self)
- else:
- return visitor.visitChildren(self)
-
- def valueExp(self):
- localctx = OpenSCENARIO2Parser.ValueExpContext(self, self._ctx, self.state)
- self.enterRule(localctx, 252, self.RULE_valueExp)
- try:
- self.state = 1223
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 114, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 1214
- self.physicalLiteral()
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 1215
- self.match(OpenSCENARIO2Parser.FloatLiteral)
- pass
-
- elif la_ == 3:
- self.enterOuterAlt(localctx, 3)
- self.state = 1216
- self.integerLiteral()
- pass
-
- elif la_ == 4:
- self.enterOuterAlt(localctx, 4)
- self.state = 1217
- self.match(OpenSCENARIO2Parser.BoolLiteral)
- pass
-
- elif la_ == 5:
- self.enterOuterAlt(localctx, 5)
- self.state = 1218
- self.match(OpenSCENARIO2Parser.StringLiteral)
- pass
-
- elif la_ == 6:
- self.enterOuterAlt(localctx, 6)
- self.state = 1219
- self.identifierReference()
- pass
-
- elif la_ == 7:
- self.enterOuterAlt(localctx, 7)
- self.state = 1220
- self.enumValueReference()
- pass
-
- elif la_ == 8:
- self.enterOuterAlt(localctx, 8)
- self.state = 1221
- self.listConstructor()
- pass
-
- elif la_ == 9:
- self.enterOuterAlt(localctx, 9)
- self.state = 1222
- self.rangeConstructor()
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ListConstructorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0)
-
- def expression(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.ExpressionContext)
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ExpressionContext, i
- )
-
- def CLOSE_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_listConstructor
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterListConstructor"):
- listener.enterListConstructor(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitListConstructor"):
- listener.exitListConstructor(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitListConstructor"):
- return visitor.visitListConstructor(self)
- else:
- return visitor.visitChildren(self)
-
- def listConstructor(self):
- localctx = OpenSCENARIO2Parser.ListConstructorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 254, self.RULE_listConstructor)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1225
- self.match(OpenSCENARIO2Parser.OPEN_BRACK)
- self.state = 1226
- self.expression()
- self.state = 1231
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 1227
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1228
- self.expression()
- self.state = 1233
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- self.state = 1234
- self.match(OpenSCENARIO2Parser.CLOSE_BRACK)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class RangeConstructorContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def OPEN_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_PAREN, 0)
-
- def expression(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.ExpressionContext)
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ExpressionContext, i
- )
-
- def CLOSE_PAREN(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_PAREN, 0)
-
- def OPEN_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.OPEN_BRACK, 0)
-
- def CLOSE_BRACK(self):
- return self.getToken(OpenSCENARIO2Parser.CLOSE_BRACK, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_rangeConstructor
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterRangeConstructor"):
- listener.enterRangeConstructor(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitRangeConstructor"):
- listener.exitRangeConstructor(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitRangeConstructor"):
- return visitor.visitRangeConstructor(self)
- else:
- return visitor.visitChildren(self)
-
- def rangeConstructor(self):
- localctx = OpenSCENARIO2Parser.RangeConstructorContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 256, self.RULE_rangeConstructor)
- try:
- self.state = 1249
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.T__59]:
- self.enterOuterAlt(localctx, 1)
- self.state = 1236
- self.match(OpenSCENARIO2Parser.T__59)
- self.state = 1237
- self.match(OpenSCENARIO2Parser.OPEN_PAREN)
- self.state = 1238
- self.expression()
- self.state = 1239
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1240
- self.expression()
- self.state = 1241
- self.match(OpenSCENARIO2Parser.CLOSE_PAREN)
- pass
- elif token in [OpenSCENARIO2Parser.OPEN_BRACK]:
- self.enterOuterAlt(localctx, 2)
- self.state = 1243
- self.match(OpenSCENARIO2Parser.OPEN_BRACK)
- self.state = 1244
- self.expression()
- self.state = 1245
- self.match(OpenSCENARIO2Parser.T__77)
- self.state = 1246
- self.expression()
- self.state = 1247
- self.match(OpenSCENARIO2Parser.CLOSE_BRACK)
- pass
- else:
- raise NoViableAltException(self)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class IdentifierReferenceContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def fieldName(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(OpenSCENARIO2Parser.FieldNameContext)
- else:
- return self.getTypedRuleContext(OpenSCENARIO2Parser.FieldNameContext, i)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_identifierReference
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterIdentifierReference"):
- listener.enterIdentifierReference(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitIdentifierReference"):
- listener.exitIdentifierReference(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitIdentifierReference"):
- return visitor.visitIdentifierReference(self)
- else:
- return visitor.visitChildren(self)
-
- def identifierReference(self):
- localctx = OpenSCENARIO2Parser.IdentifierReferenceContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 258, self.RULE_identifierReference)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1256
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 117, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- self.state = 1251
- self.fieldName()
- self.state = 1252
- self.match(OpenSCENARIO2Parser.T__1)
- self.state = 1258
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 117, self._ctx)
-
- self.state = 1259
- self.fieldName()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ArgumentListSpecificationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def argumentSpecification(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.ArgumentSpecificationContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.ArgumentSpecificationContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_argumentListSpecification
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterArgumentListSpecification"):
- listener.enterArgumentListSpecification(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitArgumentListSpecification"):
- listener.exitArgumentListSpecification(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitArgumentListSpecification"):
- return visitor.visitArgumentListSpecification(self)
- else:
- return visitor.visitChildren(self)
-
- def argumentListSpecification(self):
- localctx = OpenSCENARIO2Parser.ArgumentListSpecificationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 260, self.RULE_argumentListSpecification)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1261
- self.argumentSpecification()
- self.state = 1266
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 1262
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1263
- self.argumentSpecification()
- self.state = 1268
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ArgumentSpecificationContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def argumentName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentNameContext, 0)
-
- def typeDeclarator(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.TypeDeclaratorContext, 0
- )
-
- def defaultValue(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.DefaultValueContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_argumentSpecification
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterArgumentSpecification"):
- listener.enterArgumentSpecification(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitArgumentSpecification"):
- listener.exitArgumentSpecification(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitArgumentSpecification"):
- return visitor.visitArgumentSpecification(self)
- else:
- return visitor.visitChildren(self)
-
- def argumentSpecification(self):
- localctx = OpenSCENARIO2Parser.ArgumentSpecificationContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 262, self.RULE_argumentSpecification)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1269
- self.argumentName()
- self.state = 1270
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1271
- self.typeDeclarator()
- self.state = 1274
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la == OpenSCENARIO2Parser.T__10:
- self.state = 1272
- self.match(OpenSCENARIO2Parser.T__10)
- self.state = 1273
- self.defaultValue()
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ArgumentNameContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_argumentName
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterArgumentName"):
- listener.enterArgumentName(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitArgumentName"):
- listener.exitArgumentName(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitArgumentName"):
- return visitor.visitArgumentName(self)
- else:
- return visitor.visitChildren(self)
-
- def argumentName(self):
- localctx = OpenSCENARIO2Parser.ArgumentNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 264, self.RULE_argumentName)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1276
- self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class ArgumentListContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def positionalArgument(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.PositionalArgumentContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.PositionalArgumentContext, i
- )
-
- def namedArgument(self, i: int = None):
- if i is None:
- return self.getTypedRuleContexts(
- OpenSCENARIO2Parser.NamedArgumentContext
- )
- else:
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.NamedArgumentContext, i
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_argumentList
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterArgumentList"):
- listener.enterArgumentList(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitArgumentList"):
- listener.exitArgumentList(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitArgumentList"):
- return visitor.visitArgumentList(self)
- else:
- return visitor.visitChildren(self)
-
- def argumentList(self):
- localctx = OpenSCENARIO2Parser.ArgumentListContext(self, self._ctx, self.state)
- self.enterRule(localctx, 266, self.RULE_argumentList)
- self._la = 0 # Token type
- try:
- self.state = 1301
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input, 123, self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 1278
- self.positionalArgument()
- self.state = 1283
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 120, self._ctx)
- while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- self.state = 1279
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1280
- self.positionalArgument()
- self.state = 1285
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input, 120, self._ctx)
-
- self.state = 1290
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 1286
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1287
- self.namedArgument()
- self.state = 1292
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- pass
-
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 1293
- self.namedArgument()
- self.state = 1298
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la == OpenSCENARIO2Parser.T__7:
- self.state = 1294
- self.match(OpenSCENARIO2Parser.T__7)
- self.state = 1295
- self.namedArgument()
- self.state = 1300
- self._errHandler.sync(self)
- _la = self._input.LA(1)
-
- pass
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PositionalArgumentContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_positionalArgument
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPositionalArgument"):
- listener.enterPositionalArgument(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPositionalArgument"):
- listener.exitPositionalArgument(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPositionalArgument"):
- return visitor.visitPositionalArgument(self)
- else:
- return visitor.visitChildren(self)
-
- def positionalArgument(self):
- localctx = OpenSCENARIO2Parser.PositionalArgumentContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 268, self.RULE_positionalArgument)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1303
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class NamedArgumentContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def argumentName(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ArgumentNameContext, 0)
-
- def expression(self):
- return self.getTypedRuleContext(OpenSCENARIO2Parser.ExpressionContext, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_namedArgument
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterNamedArgument"):
- listener.enterNamedArgument(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitNamedArgument"):
- listener.exitNamedArgument(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitNamedArgument"):
- return visitor.visitNamedArgument(self)
- else:
- return visitor.visitChildren(self)
-
- def namedArgument(self):
- localctx = OpenSCENARIO2Parser.NamedArgumentContext(self, self._ctx, self.state)
- self.enterRule(localctx, 270, self.RULE_namedArgument)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1305
- self.argumentName()
- self.state = 1306
- self.match(OpenSCENARIO2Parser.T__8)
- self.state = 1307
- self.expression()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class PhysicalLiteralContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
- self.unitName = None # Token
-
- def Identifier(self):
- return self.getToken(OpenSCENARIO2Parser.Identifier, 0)
-
- def FloatLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.FloatLiteral, 0)
-
- def integerLiteral(self):
- return self.getTypedRuleContext(
- OpenSCENARIO2Parser.IntegerLiteralContext, 0
- )
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_physicalLiteral
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterPhysicalLiteral"):
- listener.enterPhysicalLiteral(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitPhysicalLiteral"):
- listener.exitPhysicalLiteral(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitPhysicalLiteral"):
- return visitor.visitPhysicalLiteral(self)
- else:
- return visitor.visitChildren(self)
-
- def physicalLiteral(self):
- localctx = OpenSCENARIO2Parser.PhysicalLiteralContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 272, self.RULE_physicalLiteral)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1311
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [OpenSCENARIO2Parser.FloatLiteral]:
- self.state = 1309
- self.match(OpenSCENARIO2Parser.FloatLiteral)
- pass
- elif token in [
- OpenSCENARIO2Parser.UintLiteral,
- OpenSCENARIO2Parser.HexUintLiteral,
- OpenSCENARIO2Parser.IntLiteral,
- ]:
- self.state = 1310
- self.integerLiteral()
- pass
- else:
- raise NoViableAltException(self)
-
- self.state = 1313
- localctx.unitName = self.match(OpenSCENARIO2Parser.Identifier)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- class IntegerLiteralContext(ParserRuleContext):
- __slots__ = "parser"
-
- def __init__(
- self, parser, parent: ParserRuleContext = None, invokingState: int = -1
- ):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def UintLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.UintLiteral, 0)
-
- def HexUintLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.HexUintLiteral, 0)
-
- def IntLiteral(self):
- return self.getToken(OpenSCENARIO2Parser.IntLiteral, 0)
-
- def getRuleIndex(self):
- return OpenSCENARIO2Parser.RULE_integerLiteral
-
- def enterRule(self, listener: ParseTreeListener):
- if hasattr(listener, "enterIntegerLiteral"):
- listener.enterIntegerLiteral(self)
-
- def exitRule(self, listener: ParseTreeListener):
- if hasattr(listener, "exitIntegerLiteral"):
- listener.exitIntegerLiteral(self)
-
- def accept(self, visitor: ParseTreeVisitor):
- if hasattr(visitor, "visitIntegerLiteral"):
- return visitor.visitIntegerLiteral(self)
- else:
- return visitor.visitChildren(self)
-
- def integerLiteral(self):
- localctx = OpenSCENARIO2Parser.IntegerLiteralContext(
- self, self._ctx, self.state
- )
- self.enterRule(localctx, 274, self.RULE_integerLiteral)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 1315
- _la = self._input.LA(1)
- if not (
- (
- (((_la - 89)) & ~0x3F) == 0
- and (
- (1 << (_la - 89))
- & (
- (1 << (OpenSCENARIO2Parser.UintLiteral - 89))
- | (1 << (OpenSCENARIO2Parser.HexUintLiteral - 89))
- | (1 << (OpenSCENARIO2Parser.IntLiteral - 89))
- )
- )
- != 0
- )
- ):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
- def sempred(self, localctx: RuleContext, ruleIndex: int, predIndex: int):
- if self._predicates == None:
- self._predicates = dict()
- self._predicates[4] = self.structuredIdentifier_sempred
- self._predicates[116] = self.relation_sempred
- self._predicates[118] = self.sum_sempred
- self._predicates[120] = self.term_sempred
- self._predicates[123] = self.postfixExp_sempred
- pred = self._predicates.get(ruleIndex, None)
- if pred is None:
- raise Exception("No predicate with index:" + str(ruleIndex))
- else:
- return pred(localctx, predIndex)
-
- def structuredIdentifier_sempred(
- self, localctx: StructuredIdentifierContext, predIndex: int
- ):
- if predIndex == 0:
- return self.precpred(self._ctx, 1)
-
- def relation_sempred(self, localctx: RelationContext, predIndex: int):
- if predIndex == 1:
- return self.precpred(self._ctx, 1)
-
- def sum_sempred(self, localctx: SumContext, predIndex: int):
- if predIndex == 2:
- return self.precpred(self._ctx, 1)
-
- def term_sempred(self, localctx: TermContext, predIndex: int):
- if predIndex == 3:
- return self.precpred(self._ctx, 1)
-
- def postfixExp_sempred(self, localctx: PostfixExpContext, predIndex: int):
- if predIndex == 4:
- return self.precpred(self._ctx, 5)
-
- if predIndex == 5:
- return self.precpred(self._ctx, 4)
-
- if predIndex == 6:
- return self.precpred(self._ctx, 3)
-
- if predIndex == 7:
- return self.precpred(self._ctx, 2)
-
- if predIndex == 8:
- return self.precpred(self._ctx, 1)
diff --git a/srunner/osc2/osc2_parser/OpenSCENARIO2Visitor.py b/srunner/osc2/osc2_parser/OpenSCENARIO2Visitor.py
deleted file mode 100644
index fdaa681..0000000
--- a/srunner/osc2/osc2_parser/OpenSCENARIO2Visitor.py
+++ /dev/null
@@ -1,713 +0,0 @@
-# Generated from .\OpenSCENARIO2.g4 by ANTLR 4.10.1
-from antlr4 import *
-
-if __name__ is not None and "." in __name__:
- from .OpenSCENARIO2Parser import OpenSCENARIO2Parser
-else:
- from OpenSCENARIO2Parser import OpenSCENARIO2Parser
-
-
-# This class defines a complete generic visitor for a parse tree produced by OpenSCENARIO2Parser.
-
-
-class OpenSCENARIO2Visitor(ParseTreeVisitor):
- # Visit a parse tree produced by OpenSCENARIO2Parser#osc_file.
- def visitOsc_file(self, ctx: OpenSCENARIO2Parser.Osc_fileContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#preludeStatement.
- def visitPreludeStatement(self, ctx: OpenSCENARIO2Parser.PreludeStatementContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#importStatement.
- def visitImportStatement(self, ctx: OpenSCENARIO2Parser.ImportStatementContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#importReference.
- def visitImportReference(self, ctx: OpenSCENARIO2Parser.ImportReferenceContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#structuredIdentifier.
- def visitStructuredIdentifier(
- self, ctx: OpenSCENARIO2Parser.StructuredIdentifierContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#oscDeclaration.
- def visitOscDeclaration(self, ctx: OpenSCENARIO2Parser.OscDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#physicalTypeDeclaration.
- def visitPhysicalTypeDeclaration(
- self, ctx: OpenSCENARIO2Parser.PhysicalTypeDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#physicalTypeName.
- def visitPhysicalTypeName(self, ctx: OpenSCENARIO2Parser.PhysicalTypeNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#baseUnitSpecifier.
- def visitBaseUnitSpecifier(self, ctx: OpenSCENARIO2Parser.BaseUnitSpecifierContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sIBaseUnitSpecifier.
- def visitSIBaseUnitSpecifier(
- self, ctx: OpenSCENARIO2Parser.SIBaseUnitSpecifierContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#unitDeclaration.
- def visitUnitDeclaration(self, ctx: OpenSCENARIO2Parser.UnitDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#unitSpecifier.
- def visitUnitSpecifier(self, ctx: OpenSCENARIO2Parser.UnitSpecifierContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sIUnitSpecifier.
- def visitSIUnitSpecifier(self, ctx: OpenSCENARIO2Parser.SIUnitSpecifierContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sIBaseExponentList.
- def visitSIBaseExponentList(
- self, ctx: OpenSCENARIO2Parser.SIBaseExponentListContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sIBaseExponent.
- def visitSIBaseExponent(self, ctx: OpenSCENARIO2Parser.SIBaseExponentContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sIFactor.
- def visitSIFactor(self, ctx: OpenSCENARIO2Parser.SIFactorContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sIOffset.
- def visitSIOffset(self, ctx: OpenSCENARIO2Parser.SIOffsetContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumDeclaration.
- def visitEnumDeclaration(self, ctx: OpenSCENARIO2Parser.EnumDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumMemberDecl.
- def visitEnumMemberDecl(self, ctx: OpenSCENARIO2Parser.EnumMemberDeclContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumMemberValue.
- def visitEnumMemberValue(self, ctx: OpenSCENARIO2Parser.EnumMemberValueContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumName.
- def visitEnumName(self, ctx: OpenSCENARIO2Parser.EnumNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumMemberName.
- def visitEnumMemberName(self, ctx: OpenSCENARIO2Parser.EnumMemberNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumValueReference.
- def visitEnumValueReference(
- self, ctx: OpenSCENARIO2Parser.EnumValueReferenceContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#inheritsCondition.
- def visitInheritsCondition(self, ctx: OpenSCENARIO2Parser.InheritsConditionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#structDeclaration.
- def visitStructDeclaration(self, ctx: OpenSCENARIO2Parser.StructDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#structInherts.
- def visitStructInherts(self, ctx: OpenSCENARIO2Parser.StructInhertsContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#structMemberDecl.
- def visitStructMemberDecl(self, ctx: OpenSCENARIO2Parser.StructMemberDeclContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#fieldName.
- def visitFieldName(self, ctx: OpenSCENARIO2Parser.FieldNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#structName.
- def visitStructName(self, ctx: OpenSCENARIO2Parser.StructNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actorDeclaration.
- def visitActorDeclaration(self, ctx: OpenSCENARIO2Parser.ActorDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actorInherts.
- def visitActorInherts(self, ctx: OpenSCENARIO2Parser.ActorInhertsContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actorMemberDecl.
- def visitActorMemberDecl(self, ctx: OpenSCENARIO2Parser.ActorMemberDeclContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actorName.
- def visitActorName(self, ctx: OpenSCENARIO2Parser.ActorNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#scenarioDeclaration.
- def visitScenarioDeclaration(
- self, ctx: OpenSCENARIO2Parser.ScenarioDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#scenarioInherts.
- def visitScenarioInherts(self, ctx: OpenSCENARIO2Parser.ScenarioInhertsContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#scenarioMemberDecl.
- def visitScenarioMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ScenarioMemberDeclContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#qualifiedBehaviorName.
- def visitQualifiedBehaviorName(
- self, ctx: OpenSCENARIO2Parser.QualifiedBehaviorNameContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#behaviorName.
- def visitBehaviorName(self, ctx: OpenSCENARIO2Parser.BehaviorNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actionDeclaration.
- def visitActionDeclaration(self, ctx: OpenSCENARIO2Parser.ActionDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actionInherts.
- def visitActionInherts(self, ctx: OpenSCENARIO2Parser.ActionInhertsContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#modifierDeclaration.
- def visitModifierDeclaration(
- self, ctx: OpenSCENARIO2Parser.ModifierDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#modifierName.
- def visitModifierName(self, ctx: OpenSCENARIO2Parser.ModifierNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#typeExtension.
- def visitTypeExtension(self, ctx: OpenSCENARIO2Parser.TypeExtensionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#enumTypeExtension.
- def visitEnumTypeExtension(self, ctx: OpenSCENARIO2Parser.EnumTypeExtensionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#structuredTypeExtension.
- def visitStructuredTypeExtension(
- self, ctx: OpenSCENARIO2Parser.StructuredTypeExtensionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#extendableTypeName.
- def visitExtendableTypeName(
- self, ctx: OpenSCENARIO2Parser.ExtendableTypeNameContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#extensionMemberDecl.
- def visitExtensionMemberDecl(
- self, ctx: OpenSCENARIO2Parser.ExtensionMemberDeclContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#globalParameterDeclaration.
- def visitGlobalParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.GlobalParameterDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#typeDeclarator.
- def visitTypeDeclarator(self, ctx: OpenSCENARIO2Parser.TypeDeclaratorContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#nonAggregateTypeDeclarator.
- def visitNonAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.NonAggregateTypeDeclaratorContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#aggregateTypeDeclarator.
- def visitAggregateTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.AggregateTypeDeclaratorContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#listTypeDeclarator.
- def visitListTypeDeclarator(
- self, ctx: OpenSCENARIO2Parser.ListTypeDeclaratorContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#primitiveType.
- def visitPrimitiveType(self, ctx: OpenSCENARIO2Parser.PrimitiveTypeContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#typeName.
- def visitTypeName(self, ctx: OpenSCENARIO2Parser.TypeNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventDeclaration.
- def visitEventDeclaration(self, ctx: OpenSCENARIO2Parser.EventDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventSpecification.
- def visitEventSpecification(
- self, ctx: OpenSCENARIO2Parser.EventSpecificationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventReference.
- def visitEventReference(self, ctx: OpenSCENARIO2Parser.EventReferenceContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventFieldDecl.
- def visitEventFieldDecl(self, ctx: OpenSCENARIO2Parser.EventFieldDeclContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventFieldName.
- def visitEventFieldName(self, ctx: OpenSCENARIO2Parser.EventFieldNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventName.
- def visitEventName(self, ctx: OpenSCENARIO2Parser.EventNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventPath.
- def visitEventPath(self, ctx: OpenSCENARIO2Parser.EventPathContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#eventCondition.
- def visitEventCondition(self, ctx: OpenSCENARIO2Parser.EventConditionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#riseExpression.
- def visitRiseExpression(self, ctx: OpenSCENARIO2Parser.RiseExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#fallExpression.
- def visitFallExpression(self, ctx: OpenSCENARIO2Parser.FallExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#elapsedExpression.
- def visitElapsedExpression(self, ctx: OpenSCENARIO2Parser.ElapsedExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#everyExpression.
- def visitEveryExpression(self, ctx: OpenSCENARIO2Parser.EveryExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#boolExpression.
- def visitBoolExpression(self, ctx: OpenSCENARIO2Parser.BoolExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#durationExpression.
- def visitDurationExpression(
- self, ctx: OpenSCENARIO2Parser.DurationExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#fieldDeclaration.
- def visitFieldDeclaration(self, ctx: OpenSCENARIO2Parser.FieldDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#parameterDeclaration.
- def visitParameterDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#variableDeclaration.
- def visitVariableDeclaration(
- self, ctx: OpenSCENARIO2Parser.VariableDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sampleExpression.
- def visitSampleExpression(self, ctx: OpenSCENARIO2Parser.SampleExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#defaultValue.
- def visitDefaultValue(self, ctx: OpenSCENARIO2Parser.DefaultValueContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#parameterWithDeclaration.
- def visitParameterWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.ParameterWithDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#parameterWithMember.
- def visitParameterWithMember(
- self, ctx: OpenSCENARIO2Parser.ParameterWithMemberContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#constraintDeclaration.
- def visitConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.ConstraintDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#keepConstraintDeclaration.
- def visitKeepConstraintDeclaration(
- self, ctx: OpenSCENARIO2Parser.KeepConstraintDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#constraintQualifier.
- def visitConstraintQualifier(
- self, ctx: OpenSCENARIO2Parser.ConstraintQualifierContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#constraintExpression.
- def visitConstraintExpression(
- self, ctx: OpenSCENARIO2Parser.ConstraintExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#removeDefaultDeclaration.
- def visitRemoveDefaultDeclaration(
- self, ctx: OpenSCENARIO2Parser.RemoveDefaultDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#parameterReference.
- def visitParameterReference(
- self, ctx: OpenSCENARIO2Parser.ParameterReferenceContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#modifierInvocation.
- def visitModifierInvocation(
- self, ctx: OpenSCENARIO2Parser.ModifierInvocationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#behaviorExpression.
- def visitBehaviorExpression(
- self, ctx: OpenSCENARIO2Parser.BehaviorExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#behaviorSpecification.
- def visitBehaviorSpecification(
- self, ctx: OpenSCENARIO2Parser.BehaviorSpecificationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#onDirective.
- def visitOnDirective(self, ctx: OpenSCENARIO2Parser.OnDirectiveContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#onMember.
- def visitOnMember(self, ctx: OpenSCENARIO2Parser.OnMemberContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#doDirective.
- def visitDoDirective(self, ctx: OpenSCENARIO2Parser.DoDirectiveContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#doMember.
- def visitDoMember(self, ctx: OpenSCENARIO2Parser.DoMemberContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#composition.
- def visitComposition(self, ctx: OpenSCENARIO2Parser.CompositionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#compositionOperator.
- def visitCompositionOperator(
- self, ctx: OpenSCENARIO2Parser.CompositionOperatorContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#behaviorInvocation.
- def visitBehaviorInvocation(
- self, ctx: OpenSCENARIO2Parser.BehaviorInvocationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#behaviorWithDeclaration.
- def visitBehaviorWithDeclaration(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#behaviorWithMember.
- def visitBehaviorWithMember(
- self, ctx: OpenSCENARIO2Parser.BehaviorWithMemberContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#labelName.
- def visitLabelName(self, ctx: OpenSCENARIO2Parser.LabelNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#actorExpression.
- def visitActorExpression(self, ctx: OpenSCENARIO2Parser.ActorExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#waitDirective.
- def visitWaitDirective(self, ctx: OpenSCENARIO2Parser.WaitDirectiveContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#emitDirective.
- def visitEmitDirective(self, ctx: OpenSCENARIO2Parser.EmitDirectiveContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#callDirective.
- def visitCallDirective(self, ctx: OpenSCENARIO2Parser.CallDirectiveContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#untilDirective.
- def visitUntilDirective(self, ctx: OpenSCENARIO2Parser.UntilDirectiveContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#methodInvocation.
- def visitMethodInvocation(self, ctx: OpenSCENARIO2Parser.MethodInvocationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#methodDeclaration.
- def visitMethodDeclaration(self, ctx: OpenSCENARIO2Parser.MethodDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#returnType.
- def visitReturnType(self, ctx: OpenSCENARIO2Parser.ReturnTypeContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#methodImplementation.
- def visitMethodImplementation(
- self, ctx: OpenSCENARIO2Parser.MethodImplementationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#methodQualifier.
- def visitMethodQualifier(self, ctx: OpenSCENARIO2Parser.MethodQualifierContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#methodName.
- def visitMethodName(self, ctx: OpenSCENARIO2Parser.MethodNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageDeclaration.
- def visitCoverageDeclaration(
- self, ctx: OpenSCENARIO2Parser.CoverageDeclarationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverDeclaration.
- def visitCoverDeclaration(self, ctx: OpenSCENARIO2Parser.CoverDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#recordDeclaration.
- def visitRecordDeclaration(self, ctx: OpenSCENARIO2Parser.RecordDeclarationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageExpression.
- def visitCoverageExpression(
- self, ctx: OpenSCENARIO2Parser.CoverageExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageUnit.
- def visitCoverageUnit(self, ctx: OpenSCENARIO2Parser.CoverageUnitContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageRange.
- def visitCoverageRange(self, ctx: OpenSCENARIO2Parser.CoverageRangeContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageEvery.
- def visitCoverageEvery(self, ctx: OpenSCENARIO2Parser.CoverageEveryContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageEvent.
- def visitCoverageEvent(self, ctx: OpenSCENARIO2Parser.CoverageEventContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#coverageNameArgument.
- def visitCoverageNameArgument(
- self, ctx: OpenSCENARIO2Parser.CoverageNameArgumentContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#targetName.
- def visitTargetName(self, ctx: OpenSCENARIO2Parser.TargetNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#expression.
- def visitExpression(self, ctx: OpenSCENARIO2Parser.ExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#ternaryOpExp.
- def visitTernaryOpExp(self, ctx: OpenSCENARIO2Parser.TernaryOpExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#implication.
- def visitImplication(self, ctx: OpenSCENARIO2Parser.ImplicationContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#disjunction.
- def visitDisjunction(self, ctx: OpenSCENARIO2Parser.DisjunctionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#conjunction.
- def visitConjunction(self, ctx: OpenSCENARIO2Parser.ConjunctionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#inversion.
- def visitInversion(self, ctx: OpenSCENARIO2Parser.InversionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#relationExp.
- def visitRelationExp(self, ctx: OpenSCENARIO2Parser.RelationExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#sumExp.
- def visitSumExp(self, ctx: OpenSCENARIO2Parser.SumExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#relationalOp.
- def visitRelationalOp(self, ctx: OpenSCENARIO2Parser.RelationalOpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#termExp.
- def visitTermExp(self, ctx: OpenSCENARIO2Parser.TermExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#additiveExp.
- def visitAdditiveExp(self, ctx: OpenSCENARIO2Parser.AdditiveExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#additiveOp.
- def visitAdditiveOp(self, ctx: OpenSCENARIO2Parser.AdditiveOpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#multiplicativeExp.
- def visitMultiplicativeExp(self, ctx: OpenSCENARIO2Parser.MultiplicativeExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#factorExp.
- def visitFactorExp(self, ctx: OpenSCENARIO2Parser.FactorExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#multiplicativeOp.
- def visitMultiplicativeOp(self, ctx: OpenSCENARIO2Parser.MultiplicativeOpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#factor.
- def visitFactor(self, ctx: OpenSCENARIO2Parser.FactorContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#primaryExpression.
- def visitPrimaryExpression(self, ctx: OpenSCENARIO2Parser.PrimaryExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#castExpression.
- def visitCastExpression(self, ctx: OpenSCENARIO2Parser.CastExpressionContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#functionApplicationExpression.
- def visitFunctionApplicationExpression(
- self, ctx: OpenSCENARIO2Parser.FunctionApplicationExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#fieldAccessExpression.
- def visitFieldAccessExpression(
- self, ctx: OpenSCENARIO2Parser.FieldAccessExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#elementAccessExpression.
- def visitElementAccessExpression(
- self, ctx: OpenSCENARIO2Parser.ElementAccessExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#typeTestExpression.
- def visitTypeTestExpression(
- self, ctx: OpenSCENARIO2Parser.TypeTestExpressionContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#fieldAccess.
- def visitFieldAccess(self, ctx: OpenSCENARIO2Parser.FieldAccessContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#primaryExp.
- def visitPrimaryExp(self, ctx: OpenSCENARIO2Parser.PrimaryExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#valueExp.
- def visitValueExp(self, ctx: OpenSCENARIO2Parser.ValueExpContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#listConstructor.
- def visitListConstructor(self, ctx: OpenSCENARIO2Parser.ListConstructorContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#rangeConstructor.
- def visitRangeConstructor(self, ctx: OpenSCENARIO2Parser.RangeConstructorContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#identifierReference.
- def visitIdentifierReference(
- self, ctx: OpenSCENARIO2Parser.IdentifierReferenceContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#argumentListSpecification.
- def visitArgumentListSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentListSpecificationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#argumentSpecification.
- def visitArgumentSpecification(
- self, ctx: OpenSCENARIO2Parser.ArgumentSpecificationContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#argumentName.
- def visitArgumentName(self, ctx: OpenSCENARIO2Parser.ArgumentNameContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#argumentList.
- def visitArgumentList(self, ctx: OpenSCENARIO2Parser.ArgumentListContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#positionalArgument.
- def visitPositionalArgument(
- self, ctx: OpenSCENARIO2Parser.PositionalArgumentContext
- ):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#namedArgument.
- def visitNamedArgument(self, ctx: OpenSCENARIO2Parser.NamedArgumentContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#physicalLiteral.
- def visitPhysicalLiteral(self, ctx: OpenSCENARIO2Parser.PhysicalLiteralContext):
- return self.visitChildren(ctx)
-
- # Visit a parse tree produced by OpenSCENARIO2Parser#integerLiteral.
- def visitIntegerLiteral(self, ctx: OpenSCENARIO2Parser.IntegerLiteralContext):
- return self.visitChildren(ctx)
-
-
-del OpenSCENARIO2Parser
diff --git a/srunner/osc2/osc2_parser/__init__.py b/srunner/osc2/osc2_parser/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2/osc_preprocess/__init__.py b/srunner/osc2/osc_preprocess/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2/osc_preprocess/import_file.py b/srunner/osc2/osc_preprocess/import_file.py
deleted file mode 100644
index cd2f8bd..0000000
--- a/srunner/osc2/osc_preprocess/import_file.py
+++ /dev/null
@@ -1,96 +0,0 @@
-"""
-The referenced file class
-__base_path: file path
-__file: The file itself
-"""
-import queue
-
-
-class ImportFile:
- def __init__(self, base_path):
- self.__base_path = base_path
- self.__file = open(base_path, encoding="utf-8")
-
- # Get current path
- def get_path(self):
- return self.__base_path
-
- # Verify that it is the same file by comparing whether the paths are the same
- def same_as(self, another_file):
- if self.__base_path == another_file.get_path():
- return True
- return False
-
- def get_true_path(self, import_file_path):
- """
- Pass in the import relative path, converted to the absolute path of the reference file
- Args:
- import_file_path: Relative path of the referenced file
- Returns:
-
- """
- current_path = self.get_path()
- import_file_path = import_file_path.rsplit("../")
- up_levels = len(import_file_path)
- true_path = current_path.rsplit("/", up_levels)[0] + "/" + import_file_path[-1]
- return true_path
-
- # Get import members and return a queue of members
- def get_import_members(self):
- file = open(self.get_path(), encoding="utf-8")
- is_continue = True
- import_files = queue.Queue()
- while is_continue:
- current_line = file.readline().strip()
- # comment line
- if current_line.startswith("#"):
- continue
- # blank line
- elif not len(current_line):
- continue
- # import line
- elif current_line.startswith("import"):
- # Gets the relative path to the referenced file
- current_line = current_line.lstrip("import")
- current_line = current_line.lstrip(" ")
- # The absolute path to the file converted to Import
- import_file_path = self.get_true_path(current_line)
- import_files.put(ImportFile(import_file_path))
- # Other lines, exit
- else:
- is_continue = False
- file.close()
- return import_files
-
- # Gets the content of the import file and returns the number of lines
- def get_content(self):
- lines = -1 # count the number of rows
- content = ""
- file = open(self.get_path(), encoding="utf-8")
- current_line = "start"
- pre_line = ""
- while current_line:
- lines += 1
- pre_line = current_line
- current_line = file.readline()
- # In order to locate errors, leave the original file line number unchanged
- if current_line.startswith("import"):
- content += "#" + current_line
- # content += current_line
- continue
- else:
- content += current_line
- if pre_line.endswith("\n"):
- return content, lines
- else:
- index = len(pre_line)
- print(
- "[Error] file '"
- + self.get_path()
- + "' line "
- + lines.__str__()
- + ":"
- + index.__str__()
- + " mismatched input ''"
- )
- return content, lines
diff --git a/srunner/osc2/osc_preprocess/import_msg.py b/srunner/osc2/osc_preprocess/import_msg.py
deleted file mode 100644
index 3e74242..0000000
--- a/srunner/osc2/osc_preprocess/import_msg.py
+++ /dev/null
@@ -1,30 +0,0 @@
-class ImportMsg:
- def __init__(self):
- self.files = []
- self.index = [0]
-
- def add(self, file_name, line):
- self.files.append(file_name)
- self.index.append(line + self.index[-1])
-
- # Enter the old line and return the file and the new line
- def get_msg(self, line):
- for i in range(len(self.index)):
- if line <= self.index[i]:
- return self.files[i - 1], line - self.index[i - 1]
- print("relocation failed!")
- return
-
- # Get the stored information
- def msg(self):
- msg = []
- for i in range(len(self.index) - 1):
- print(self.files[i] + " : " + str(self.index[i]))
-
- # Empty stored information for running multiple files at once
- def clear_msg(self):
- self.files = []
- self.index = [0]
-
-
-create_ImportMsg = ImportMsg()
diff --git a/srunner/osc2/osc_preprocess/pre_process.py b/srunner/osc2/osc_preprocess/pre_process.py
deleted file mode 100644
index e3dc7e7..0000000
--- a/srunner/osc2/osc_preprocess/pre_process.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# Preprocess the osc file to expand the import
-import os
-
-from srunner.osc2.osc_preprocess.import_file import ImportFile
-
-# File preprocessor class
-from srunner.osc2.osc_preprocess.import_msg import create_ImportMsg as import_msg
-from srunner.osc2.utils.log_manager import *
-
-
-class Preprocess:
- def __init__(self, current_path):
- self.import_msg = import_msg
- # The path to the current file, converted to an absolute path
- self.current_path = os.getcwd() + "/" + current_path
- # invocation stack
- self.stack = []
- # invocation record
- self.note = []
- # final documents
- self.result = "result"
- self.file = None
-
- # Determine whether it is recorded
- def exit(self, current, note):
- for member in note:
- if current.same_as(member):
- return True
- return False
-
- # Return import preprocessing results and import information
- def import_process(self):
- self.file = open(self.result, "w+", encoding="utf-8")
- current = ImportFile(self.current_path)
- self.__import_process(current)
- self.file.close()
- return self.result, self.import_msg
-
- def __import_process(self, current):
- # Record the current node to the call stack
- self.stack.append(current)
- # Get the child node and store it in the queue
- child_queue = current.get_import_members()
-
- # We recursively deal with children
- while not child_queue.empty():
- child = child_queue.get()
- # If the child node is already contained in the stack, it is a circular reference
- if self.exit(child, self.stack):
- child.get_path()
- msg = "[Error] circular import file " + child.get_path()
- LOG_ERROR(msg)
- return
- # If the child node appears in note, it is a duplicate reference
- if self.exit(child, self.note):
- continue
- self.__import_process(child)
- # The child node is processed, and the current node is processed
- # Record
- self.note.append(current)
- # Write content, record import information
- content, line = current.get_content()
- self.file.write(content)
- self.import_msg.add(current.get_path(), line)
diff --git a/srunner/osc2/symbol_manager/__init__.py b/srunner/osc2/symbol_manager/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2/symbol_manager/action_symbol.py b/srunner/osc2/symbol_manager/action_symbol.py
deleted file mode 100644
index f53875c..0000000
--- a/srunner/osc2/symbol_manager/action_symbol.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from srunner.osc2.symbol_manager.inherits_condition_symbol import ActionInhertsSymbol
-from srunner.osc2.symbol_manager.qualifiedBehavior_symbol import QualifiedBehaviorSymbol
-from srunner.osc2.symbol_manager.scope import Scope
-from srunner.osc2.utils.log_manager import *
-
-
-class ActionSymbol(QualifiedBehaviorSymbol, Scope):
- def __init__(self, QualifiedBehaviorSymbol):
- super().__init__(QualifiedBehaviorSymbol.name, QualifiedBehaviorSymbol.scope)
-
- def is_key_found(self, sym):
- if isinstance(sym, ActionInhertsSymbol):
- # Do not repeat checks on inheritance and stop recursion
- return False
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
diff --git a/srunner/osc2/symbol_manager/actor_symbol.py b/srunner/osc2/symbol_manager/actor_symbol.py
deleted file mode 100644
index 1dcf197..0000000
--- a/srunner/osc2/symbol_manager/actor_symbol.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.inherits_condition_symbol import *
-
-
-class ActorSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
- def is_key_found(self, sym):
- if isinstance(sym, ActorInhertsSymbol):
- # Do not repeat checks on inheritance and stop recursion
- return False
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
diff --git a/srunner/osc2/symbol_manager/argument_symbol.py b/srunner/osc2/symbol_manager/argument_symbol.py
deleted file mode 100644
index 29898a4..0000000
--- a/srunner/osc2/symbol_manager/argument_symbol.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.typed_symbol import TypedSymbol
-
-
-class ArgumentSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
-
-class NamedArgumentSymbol(ArgumentSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += self.name
- return buf
-
-
-class PositionalArgumentSymbol(ArgumentSymbol):
- def __init__(self, scope):
- super().__init__(None, scope)
-
- def __str__(self):
- buf = self.__class__.__name__
- return buf
-
-
-class ArgumentSpecificationSymbol(TypedSymbol):
- def __init__(self, name, scope, type, value=None):
- super().__init__(name, scope, type, value)
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += self.type
- buf += ","
- buf += self.name
- if self.value is not None:
- buf += ","
- buf += str(self.value)
- return buf
diff --git a/srunner/osc2/symbol_manager/base_scope.py b/srunner/osc2/symbol_manager/base_scope.py
deleted file mode 100644
index b7584bf..0000000
--- a/srunner/osc2/symbol_manager/base_scope.py
+++ /dev/null
@@ -1,47 +0,0 @@
-from srunner.osc2.symbol_manager.scope import Scope
-from srunner.osc2.symbol_manager.symbol import Symbol
-from srunner.osc2.utils.log_manager import *
-
-# All symbols defined in this scope; This can include classes, functions, variables,
-# or any other symbolic impl. It does not include things that are not based on symbols
-
-
-class BaseScope(Scope):
- def __init__(self, scope: Scope):
- self.enclosing_scope = scope
- self.symbols = {}
-
- def resolve(self, name):
- s = self.symbols.get(name)
- if s is not None:
- return s
- if self.enclosing_scope is not None:
- return self.enclosing_scope.resolve(name)
- return None
-
- def is_key_found(self, sym):
- if sym.name and sym.name in self.symbols:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
-
- def define(self, sym, ctx):
- if self.is_key_found(sym):
- msg = sym.name + " is already defined!"
- LOG_ERROR(msg, ctx)
- else:
- self.symbols[sym.name] = sym
-
- def get_enclosing_scope(self):
- return self.enclosing_scope
-
- def get_number_of_symbols(self):
- return len(self.symbols)
-
- def get_child_symbol(self, i):
- return list(self.symbols.values())[i]
-
- def __str__(self):
- buf = self.get_scope_name() + " : " + list(self.symbols.keys()).__str__()
- return buf
diff --git a/srunner/osc2/symbol_manager/base_symbol.py b/srunner/osc2/symbol_manager/base_symbol.py
deleted file mode 100644
index 9646b41..0000000
--- a/srunner/osc2/symbol_manager/base_symbol.py
+++ /dev/null
@@ -1,66 +0,0 @@
-import copy
-
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-from srunner.osc2.symbol_manager.symbol import Symbol
-from srunner.osc2.utils.log_manager import *
-from srunner.osc2.utils.tools import *
-
-
-class BaseSymbol(Symbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
- self.enclosing_scope = scope
- self.symbols = {}
-
- def resolve(self, name):
- s = self.symbols.get(name)
- if s is not None:
- return s
- if self.enclosing_scope is not None:
- return self.enclosing_scope.resolve(name)
- return None
-
- def is_key_found(self, sym):
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
-
- def define(self, sym, ctx):
- if issubclass(type(sym), LocalScope):
- self.symbols[sym.__class__.__name__ + str(ctx.line) + str(ctx.column)] = sym
- else:
- if is_multi_name(sym.name):
- names = multi_field_name_split(sym.name)
- for sub_sym_name in names:
- sub_sym = copy.deepcopy(sym)
- sub_sym.name = sub_sym_name
- if self.is_key_found(sub_sym):
- msg = sub_sym.name + " is already defined!"
- LOG_ERROR(msg, ctx)
- else:
- self.symbols[sub_sym.name] = sub_sym
- else:
- if self.is_key_found(sym):
- sep = "#"
- name = sym.name.split(sep, 1)[0]
- msg = name + " is already defined!"
- LOG_ERROR(msg, ctx)
- else:
- self.symbols[sym.name] = sym
-
- def get_enclosing_scope(self):
- return self.enclosing_scope
-
- def get_number_of_symbols(self):
- return len(self.symbols)
-
- def get_child_symbol(self, i):
- return list(self.symbols.values())[i]
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += self.name
- return buf
diff --git a/srunner/osc2/symbol_manager/behavior_symbol.py b/srunner/osc2/symbol_manager/behavior_symbol.py
deleted file mode 100644
index 7b8ad8b..0000000
--- a/srunner/osc2/symbol_manager/behavior_symbol.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-
-class BehaviorInvocationSymbol(BaseSymbol):
- def __init__(self, behavior_name, scope, actor_name=None):
- name = ""
- if actor_name is not None:
- name += actor_name + "."
- name += behavior_name
- super().__init__(name, scope)
- self.actor_name = actor_name
- self.behavior_name = behavior_name
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- if self.actor_name is not None:
- buf += self.actor_name + "."
- buf += self.behavior_name
- return buf
-
-
-class BehaviorWithScope(LocalScope):
- def __init__(self, scope):
- super().__init__(scope)
- self.name = "with"
-
- def __str__(self):
- return "with"
diff --git a/srunner/osc2/symbol_manager/composition_symbol.py b/srunner/osc2/symbol_manager/composition_symbol.py
deleted file mode 100644
index 287f92d..0000000
--- a/srunner/osc2/symbol_manager/composition_symbol.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-
-# compositionOperator : 'serial' | 'one_of' | 'parallel';
-
-
-class CompositionSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
-
-class SerialSymbol(CompositionSymbol):
- def __init__(self, scope):
- super().__init__("serial", scope)
-
-
-class OneOfSymbol(CompositionSymbol):
- def __init__(self, scope):
- super().__init__("one_of", scope)
-
-
-class ParallelSymbol(CompositionSymbol):
- def __init__(self, scope):
- super().__init__("parallel", scope)
diff --git a/srunner/osc2/symbol_manager/compound _symbol.py b/srunner/osc2/symbol_manager/compound _symbol.py
deleted file mode 100644
index 7ece4ab..0000000
--- a/srunner/osc2/symbol_manager/compound _symbol.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from srunner.osc2.symbol_manager.scope import Scope
-from srunner.osc2.symbol_manager.symbol import Symbol
-
-
-class CompoundSymbol(Symbol, Scope):
- pass
diff --git a/srunner/osc2/symbol_manager/constraint_decl_scope.py b/srunner/osc2/symbol_manager/constraint_decl_scope.py
deleted file mode 100644
index 3bc8c27..0000000
--- a/srunner/osc2/symbol_manager/constraint_decl_scope.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-
-class ConstraintScope(LocalScope):
- def __init__(self, scope, constraint_qualifier):
- super().__init__(scope)
- self.constraint_qualifier = constraint_qualifier
-
- def get_scope_name(self):
- return "constraint"
-
-
-class KeepScope(ConstraintScope):
- def __init__(self, scope, constraint_qualifier):
- super().__init__(scope, constraint_qualifier)
-
- def get_scope_name(self):
- return "keep"
diff --git a/srunner/osc2/symbol_manager/default_value_scope.py b/srunner/osc2/symbol_manager/default_value_scope.py
deleted file mode 100644
index 6515f7d..0000000
--- a/srunner/osc2/symbol_manager/default_value_scope.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-
-class DefaultValueScope(LocalScope):
- def __init__(self, scope):
- super().__init__(scope)
- self.name = "="
-
- def __str__(self):
- buf = self.name
- return buf
diff --git a/srunner/osc2/symbol_manager/doMember_scope.py b/srunner/osc2/symbol_manager/doMember_scope.py
deleted file mode 100644
index fee24e9..0000000
--- a/srunner/osc2/symbol_manager/doMember_scope.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-
-# domember scope
-class DoMemberScope(LocalScope):
- def __init__(self, name, scope):
- super().__init__(scope)
- self.name = name
diff --git a/srunner/osc2/symbol_manager/doMember_symbol.py b/srunner/osc2/symbol_manager/doMember_symbol.py
deleted file mode 100644
index 96810af..0000000
--- a/srunner/osc2/symbol_manager/doMember_symbol.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.behavior_symbol import BehaviorInvocationSymbol
-from srunner.osc2.symbol_manager.wait_symbol import WaitSymbol
-
-
-# domember scope
-class DoMemberSymbol(BaseSymbol):
- def __init__(self, name, scope, op):
- super().__init__(name, scope)
- self.op = op
-
- def get_scope_name(self):
- return self.name
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- if self.name is not None:
- buf += self.name + ","
- buf += str(self.op)
- return buf
diff --git a/srunner/osc2/symbol_manager/do_directive_scope.py b/srunner/osc2/symbol_manager/do_directive_scope.py
deleted file mode 100644
index e4c8956..0000000
--- a/srunner/osc2/symbol_manager/do_directive_scope.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-# compositionOperator : 'serial' | 'one_of' | 'parallel';
-
-
-class DoDirectiveScope(LocalScope):
- def __init__(self, scope):
- super().__init__(scope)
- self.name = "do"
-
- def __str__(self):
- buf = self.__class__.__name__
- return buf
diff --git a/srunner/osc2/symbol_manager/enum_symbol.py b/srunner/osc2/symbol_manager/enum_symbol.py
deleted file mode 100644
index 5a10a00..0000000
--- a/srunner/osc2/symbol_manager/enum_symbol.py
+++ /dev/null
@@ -1,65 +0,0 @@
-from srunner.osc2.error_manager import *
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.utils.log_manager import LOG_ERROR
-
-
-class EnumValueRefSymbol(BaseSymbol):
- def __init__(self, enum_name, enum_member_name, value, scope):
- name = enum_name + "!" + enum_member_name
- super().__init__(name, scope)
- self.enum_name = enum_name
- self.enum_member_name = enum_member_name
- self.value = value
-
- def __str__(self):
- buf = self.name
- buf += " = "
- buf += str(self.value)
- return buf
-
-
-class EnumMemberSymbol(BaseSymbol):
- def __init__(self, name, scope, member_value=0):
- super().__init__(name, scope)
- self.elems_index = member_value
-
- def __str__(self):
- buf = super().__str__()
- buf += " : "
- buf += str(self.elems_index)
- return buf
-
-
-class EnumSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
- self.last_index = -1
-
- def define(self, sym: EnumMemberSymbol, ctx):
- # Check for name conflicts
- if sym.name in self.symbols and sym.name:
- msg = "Enum member '" + sym.name + "' is already defined!"
- LOG_ERROR(msg, ctx)
-
- # Check that the enumeration element value is correct
- # The default value of an enumeration member must be a subsequent integer value
- if (
- sym.elems_index != 0
- and sym.elems_index != self.last_index + 1
- and self.last_index != -1
- ):
- msg = (
- "Enum member '"
- + sym.name
- + "' with wrong Value: "
- + str(sym.elems_index)
- )
- LOG_ERROR(msg, ctx)
- else:
- self.symbols[sym.name] = sym
- self.last_index = sym.elems_index
-
- def __str__(self):
- buf = "enum "
- buf += super().__str__()
- return buf
diff --git a/srunner/osc2/symbol_manager/event_symbol.py b/srunner/osc2/symbol_manager/event_symbol.py
deleted file mode 100644
index 8877660..0000000
--- a/srunner/osc2/symbol_manager/event_symbol.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from srunner.osc2.symbol_manager.argument_symbol import ArgumentSpecificationSymbol
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-
-
-class EventSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
- self.declaration_address = None
-
- # Repeated definitions are allowed for input parameters
- def is_key_found(self, sym):
- if isinstance(sym, ArgumentSpecificationSymbol):
- return False
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
-
-
-class EventRefSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
diff --git a/srunner/osc2/symbol_manager/global_scope.py b/srunner/osc2/symbol_manager/global_scope.py
deleted file mode 100644
index 720d957..0000000
--- a/srunner/osc2/symbol_manager/global_scope.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from srunner.osc2.symbol_manager.base_scope import BaseScope
-
-
-# Global scope
-class GlobalScope(BaseScope):
- def __init__(self, scope):
- super().__init__(scope)
-
- def get_scope_name(self):
- return "global"
-
- def __str__(self):
- return "global"
diff --git a/srunner/osc2/symbol_manager/identifier_scope.py b/srunner/osc2/symbol_manager/identifier_scope.py
deleted file mode 100644
index 84ad7e4..0000000
--- a/srunner/osc2/symbol_manager/identifier_scope.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-
-class IdentifierScope(LocalScope):
- def __init__(self, name, scope):
- super().__init__(scope)
- self.name = name
-
- def __str__(self):
- buf = self.name
- return buf
diff --git a/srunner/osc2/symbol_manager/inherits_condition_symbol.py b/srunner/osc2/symbol_manager/inherits_condition_symbol.py
deleted file mode 100644
index abcbddb..0000000
--- a/srunner/osc2/symbol_manager/inherits_condition_symbol.py
+++ /dev/null
@@ -1,84 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.enum_symbol import EnumValueRefSymbol
-
-# There are two types of inheritance
-# 1. Unconditional inheritance
-# 2. Conditional inheritance
-
-# For method members, inheritance types can also override existing method implementations
-# Scenarios and actions that belong to actors can only be inherited
-# from scenarios or actions that belong to actors of the same type or more general type.
-# and scenarios and actions that do not belong to actors can only be inherited from scenarios
-# or actions that do not belong to roles.(action and actor)
-
-
-class InheritsConditionSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
- def is_key_found(self, sym):
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
-
-
-class InheritSymbol(BaseSymbol):
- def __init__(self, name, scope, super_class_scope):
- super().__init__(name, scope)
- self.super_class_scope = super_class_scope
-
- # As long as resolve, get_number_of_symbols,
- # and get_child_symbol are overloaded at the same time, it's logically okay
- def resolve(self, name):
- s = self.symbols.get(name)
- if s is not None:
- return s
- if self.super_class_scope is not None:
- return self.super_class_scope.resolve(name)
- return None
-
- def get_parent_scope(self):
- if self.super_class_scope is None:
- return self.get_enclosing_scope()
- else:
- return self.super_class_scope
-
- def get_number_of_symbols(self):
- return self.super_class_scope.get_number_of_symbols()
-
- def get_child_symbol(self, i):
- return list(self.super_class_scope.symbols.values())[i]
-
- def __str__(self):
- buf = "inherits: " + self.name
- return buf
-
-
-class StructInhertsSymbol(InheritSymbol):
- def __init__(self, name, scope, super_class_scope):
- super().__init__(name, scope, super_class_scope)
-
-
-class ActorInhertsSymbol(InheritSymbol):
- def __init__(self, name, scope, super_class_scope):
- super().__init__(name, scope, super_class_scope)
-
-
-class ActionInhertsSymbol(InheritSymbol):
- def __init__(self, QualifiedBehaviorSymbol, super_class_scope):
- super().__init__(
- QualifiedBehaviorSymbol.name,
- QualifiedBehaviorSymbol.scope,
- super_class_scope,
- )
-
-
-class ScenarioInhertsSymbol(InheritSymbol):
- def __init__(self, QualifiedBehaviorSymbol, super_class_scope):
- super().__init__(
- QualifiedBehaviorSymbol.name,
- QualifiedBehaviorSymbol.scope,
- super_class_scope,
- )
diff --git a/srunner/osc2/symbol_manager/local_scope.py b/srunner/osc2/symbol_manager/local_scope.py
deleted file mode 100644
index 2fa6af2..0000000
--- a/srunner/osc2/symbol_manager/local_scope.py
+++ /dev/null
@@ -1,27 +0,0 @@
-from srunner.osc2.symbol_manager.base_scope import BaseScope
-from srunner.osc2.utils.log_manager import *
-
-
-class LocalScope(BaseScope):
- def __init__(self, scope):
- super().__init__(scope)
-
- # For local scopes, only internal naming conflicts are found
- def is_key_found(self, sym):
- if sym.name and sym.name in self.symbols:
- return True
- else:
- return False
-
- def define(self, sym, ctx):
- if issubclass(type(sym), LocalScope):
- self.symbols[sym.__class__.__name__ + str(ctx.line) + str(ctx.column)] = sym
- else:
- if self.is_key_found(sym):
- msg = sym.name + " is already defined!"
- LOG_ERROR(msg, ctx)
- else:
- self.symbols[sym.name] = sym
-
- def get_scope_name(self):
- return "local"
diff --git a/srunner/osc2/symbol_manager/method_symbol.py b/srunner/osc2/symbol_manager/method_symbol.py
deleted file mode 100644
index 1425d9c..0000000
--- a/srunner/osc2/symbol_manager/method_symbol.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from srunner.osc2.symbol_manager.argument_symbol import ArgumentSpecificationSymbol
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-
-
-class MethodSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
- self.declaration_address = None
-
- # Repeated definitions are allowed for input parameters
- def is_key_found(self, sym):
- if isinstance(sym, ArgumentSpecificationSymbol):
- return False
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
diff --git a/srunner/osc2/symbol_manager/modifier_symbol.py b/srunner/osc2/symbol_manager/modifier_symbol.py
deleted file mode 100644
index 6f84b56..0000000
--- a/srunner/osc2/symbol_manager/modifier_symbol.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-###############################################################
-# There are two types of modifiers
-# 1. Atomic modifiers
-# 2. Compound modifiers
-
-
-class ModifierSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
- self.declaration_address = None
-
-
-class ModifierInvocationSymbol(LocalScope):
- def __init__(self, behavior_name, scope, actor_name=None):
- name = ""
- if actor_name is not None:
- name += actor_name + "."
- name += behavior_name
-
- super().__init__(scope)
- self.actor_name = actor_name
- self.behavior_name = behavior_name
- self.name = name
-
- def __str__(self):
- buf = "ModifierInvocation"
- buf += " : "
- if self.actor_name is not None:
- buf += self.actor_name + "."
- buf += self.behavior_name
- return buf
diff --git a/srunner/osc2/symbol_manager/parameter_symbol.py b/srunner/osc2/symbol_manager/parameter_symbol.py
deleted file mode 100644
index 9f7fa93..0000000
--- a/srunner/osc2/symbol_manager/parameter_symbol.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from srunner.osc2.symbol_manager.typed_symbol import TypedSymbol
-
-
-class ParameterSymbol(TypedSymbol):
- def __init__(self, name, scope, type, value=None):
- super().__init__(name, scope, type, value)
-
- def __str__(self):
- buf = self.type
- buf += ":"
- buf += self.name
- if self.value is not None:
- buf += ","
- buf += str(self.value)
- return buf
diff --git a/srunner/osc2/symbol_manager/physical_type_symbol.py b/srunner/osc2/symbol_manager/physical_type_symbol.py
deleted file mode 100644
index 2a81dd1..0000000
--- a/srunner/osc2/symbol_manager/physical_type_symbol.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.si_exponent_symbol import SiExpSymbol
-from srunner.osc2.utils.log_manager import *
-
-
-class PhysicalTypeSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
diff --git a/srunner/osc2/symbol_manager/qualifiedBehavior_symbol.py b/srunner/osc2/symbol_manager/qualifiedBehavior_symbol.py
deleted file mode 100644
index 34dc5fe..0000000
--- a/srunner/osc2/symbol_manager/qualifiedBehavior_symbol.py
+++ /dev/null
@@ -1,57 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.utils.log_manager import *
-
-
-class QualifiedBehaviorSymbol(BaseSymbol):
- # Applies only to calls to a specified scenario or as a member of that scenario
- # Modifiers can be associated with specific scene types.
- # These modifiers can be applied to calls that associate scenarios in the with block of the call.
- # Modifiers can also be applied as scene members, for example in extensions of associated scene types.
- # The format is qualifiedBehaviorName : (actorName '.')? behaviorName;
- # Here is the distinction that needs to be made, for example, A.A, there will be naming conflicts.
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
- name_list = name.split(".")
- if len(name_list) == 2:
- self.actor_name = name_list[0]
- self.behavior_name = name_list[1]
- elif len(name_list) == 1:
- self.actor_name = None
- self.behavior_name = name_list[0]
- else:
- self.actor_name = None
- self.behavior_name = None
-
- # There is no nesting problem in actors, just look for actorName in the contained scope
-
- def is_actor_name_defined(self):
- if self.actor_name == None:
- return True
- elif self.enclosing_scope.symbols.get(self.actor_name) is not None:
- return True
- else:
- return False
-
- def is_qualified_behavior_name_valid(self, ctx):
- if self.actor_name == self.behavior_name and self.actor_name:
- error_msg = (
- 'behaviorName:"'
- + self.behavior_name
- + '" can not be same with actorName!'
- )
- LOG_ERROR(error_msg, ctx)
- elif self.is_actor_name_defined() is not True:
- error_msg = "actorName: " + self.actor_name + " is not defined!"
- LOG_ERROR(error_msg, ctx)
- elif self.behavior_name == None:
- error_msg = "behaviourName can not be empty!"
- LOG_ERROR(error_msg, ctx)
- else:
- pass
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += self.name
- return buf
diff --git a/srunner/osc2/symbol_manager/scenario_symbol.py b/srunner/osc2/symbol_manager/scenario_symbol.py
deleted file mode 100644
index 4b74d3c..0000000
--- a/srunner/osc2/symbol_manager/scenario_symbol.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from srunner.osc2.symbol_manager.inherits_condition_symbol import ScenarioInhertsSymbol
-from srunner.osc2.symbol_manager.qualifiedBehavior_symbol import QualifiedBehaviorSymbol
-from srunner.osc2.symbol_manager.scope import Scope
-from srunner.osc2.utils.log_manager import *
-
-
-class ScenarioSymbol(QualifiedBehaviorSymbol, Scope):
- def __init__(self, QualifiedBehaviorSymbol):
- super().__init__(QualifiedBehaviorSymbol.name, QualifiedBehaviorSymbol.scope)
- self.declaration_address = None
-
- def is_key_found(self, sym):
- if isinstance(sym, ScenarioInhertsSymbol):
- # 对于继承不做重复性检查,同时停止递归
- return False
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += self.name
- return buf
diff --git a/srunner/osc2/symbol_manager/scope.py b/srunner/osc2/symbol_manager/scope.py
deleted file mode 100644
index a1aa1ce..0000000
--- a/srunner/osc2/symbol_manager/scope.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# A scope is a dictionary of symbols that are grouped together by some
-# lexical construct in the input language. Examples include structs,
-# functions, {...} code blocks, argument lists, etc...
-
-from srunner.osc2.utils.log_manager import LOG_ERROR
-
-
-class Scope:
- # Gets the scope domain name
- def get_scope_name(self):
- raise BaseException("get_scope_name must be overload!")
-
- # Find the parent scope, returning None if the parent scope is empty, such as GlobalScope
- def get_enclosing_scope(self):
- pass
-
- # Defines symbols in the current scope
- def define(self, sym):
- pass
-
- # Look up variable names in the symbol table recursively, starting at the current scope
- def resolve(self, name):
- pass
-
- # Gets all symbol table names in the current scope
- def get_symbol_names():
- pass
-
- def get_child_symbol(self, i):
- raise BaseException("get_child_symbol must be overload!")
-
- # Gets the number of symbol tables in the current scope
- def get_number_of_symbols():
- raise BaseException("get_number_of_symbols must be overload!")
-
- # Gets the number of symbol tables in the current scope
- def get_enclosing_path_to_root():
- pass
diff --git a/srunner/osc2/symbol_manager/si_exponent_symbol.py b/srunner/osc2/symbol_manager/si_exponent_symbol.py
deleted file mode 100644
index 003e305..0000000
--- a/srunner/osc2/symbol_manager/si_exponent_symbol.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.local_scope import LocalScope
-
-
-class SiExpSymbol(BaseSymbol):
- def __init__(self, name, value, scope):
- super().__init__(name, scope)
- self.value = value
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += self.name
- return buf
-
-
-class SiBaseExponentListScope(LocalScope):
- def __init__(self, scope):
- super().__init__(scope)
-
- def __str__(self):
- return "()"
diff --git a/srunner/osc2/symbol_manager/struct_symbol.py b/srunner/osc2/symbol_manager/struct_symbol.py
deleted file mode 100644
index 3d3eef3..0000000
--- a/srunner/osc2/symbol_manager/struct_symbol.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.symbol_manager.inherits_condition_symbol import StructInhertsSymbol
-
-
-class StructSymbol(BaseSymbol):
- def __init__(self, name, scope):
- super().__init__(name, scope)
-
- def is_key_found(self, sym):
- if isinstance(sym, StructInhertsSymbol):
- # Do not repeat checks on inheritance and stop recursion
- return False
- if sym.name in self.symbols and sym.name:
- return True
- if self.enclosing_scope is not None:
- return self.enclosing_scope.is_key_found(sym)
- return False
diff --git a/srunner/osc2/symbol_manager/symbol.py b/srunner/osc2/symbol_manager/symbol.py
deleted file mode 100644
index 59a1b61..0000000
--- a/srunner/osc2/symbol_manager/symbol.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# A generic programming language symbol. A symbol has to have a name and
-# a scope in which it lives. It also helps to know the order in which
-# symbols are added to a scope because this often translates to
-# register or parameter numbers.
-
-
-class Symbol:
- def __init__(self, name=None, scope=None):
- self.name = name
- self.scope = scope
-
- def get_scope_name(self):
- return self.name
-
- def __str__(self) -> str:
- return self.__class__.__name__
diff --git a/srunner/osc2/symbol_manager/type.py b/srunner/osc2/symbol_manager/type.py
deleted file mode 100644
index 60ec28e..0000000
--- a/srunner/osc2/symbol_manager/type.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from enum import Enum
-from queue import Empty
-
-
-class BaseType:
- def get_type_name(self):
- pass
-
- """
- It is useful during type computation and code gen to assign an int
- index to the primitive types and possibly user-defined types like
- structs and classes.
- @return Return 0-indexed type index else -1 if no index.
- """
-
- def get_type_index(self):
- pass
-
-
-class PrimitiveType(BaseType):
- class Types(Enum):
- INVALID = 0
- INT = 1
- UINT = 2
- FLOAT = 3
- BOOL = 4
- STRING = 5
-
- def __init__(self):
- super().__init__()
-
-
-class PhysicalType(BaseType):
- class Types(Enum):
- INVALID = 0
- KG = 1
- M = 2
- S = 3
- A = 4
- K = 5
- MOL = 6
- CD = 7
- FACTOR = 8
- OFFSET = 9
- RAD = 10
-
- def __init__(self):
- super().__init__()
-
-
-class EnumType(BaseType):
- class Types(Enum):
- INVALID = 0
- UINT = 1
- HEX = 2
- Empty = 3
-
- def __init__(self, type=Types.INVALID, index=-1):
- super().__init__()
- self.elem_type = type
- self.elems_index = index
-
- def get_type_name(self):
- return self.elem_type
-
- def get_type_index(self):
- return self.elems_index
diff --git a/srunner/osc2/symbol_manager/typed_symbol.py b/srunner/osc2/symbol_manager/typed_symbol.py
deleted file mode 100644
index f054aa8..0000000
--- a/srunner/osc2/symbol_manager/typed_symbol.py
+++ /dev/null
@@ -1,109 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-
-# This interface tags user-defined symbols that have static type information,
-# like variables and functions.
-
-# argumentListSpecification : argumentSpecification (',' argumentSpecification)*;
-# argumentSpecification : argumentName ':' typeDeclarator ('=' defaultValue)?;
-# argumentName : Identifier;
-
-# typeDeclarator : nonAggregateTypeDeclarator | aggregateTypeDeclarator;
-# nonAggregateTypeDeclarator : primitiveType | typeName | qualifiedBehaviorName;
-
-# An aggregate type serves as a container for the unified members of another type.
-# Currently, ASAM OpenSCENARIO only provides list types as aggregation types.
-# aggregateTypeDeclarator : listTypeDeclarator;
-# listTypeDeclarator : 'list' 'of' nonAggregateTypeDeclarator;
-# primitiveType : 'int' | 'uint' | 'float' | 'bool' | 'string';
-# typeName : Identifier;
-
-
-# Here the ListMemberSymbol corresponds to the argumentSpecification:
-# argumentName ':' typeDeclarator ('=' defaultValue)?;
-class TypedSymbol(BaseSymbol):
- def __init__(self, name, scope, type, value=None):
- super().__init__(name, scope)
- self.type = type
- self.value = value
-
- def get_type(self):
- return self.type
-
- def set_type(self, type):
- self.type = type
-
-
-class BoolSymbol(TypedSymbol):
- def __init__(self, scope, value=None):
- super().__init__("bool", scope, "bool", value)
-
- def __str__(self):
- buf = "bool"
- if self.value is not None:
- buf += " : "
- buf += str(self.value)
- return buf
-
-
-class IntSymbol(TypedSymbol):
- def __init__(self, scope, type, value=None):
- super().__init__(type, scope, type, value)
-
- def __str__(self):
- buf = str(self.type)
- if self.value is not None:
- buf += ":"
- buf += str(self.value)
- return buf
-
-
-class PhysicalSymbol(TypedSymbol):
- def __init__(self, scope, type, value=None):
- super().__init__("physical", scope, type, value)
-
- def __str__(self):
- buf = self.__class__.__name__
- buf += " : "
- buf += str(self.type)
- if self.value is not None:
- buf += ","
- buf += str(self.value)
- return buf
-
-
-class IdentifierSymbol(TypedSymbol):
- def __init__(self, name, scope, value=None):
- super().__init__(name, scope, "identifier", value)
-
- def __str__(self):
- buf = "identifier"
- buf += " : "
- buf += self.name
- if self.value is not None:
- buf += " , "
- buf += str(self.value)
- return buf
-
-
-class StringSymbol(TypedSymbol):
- def __init__(self, scope, value=None):
- super().__init__("string", scope, "string", value)
-
- def __str__(self):
- buf = "string"
- if self.value is not None:
- buf += " : "
- buf += str(self.value)
- return buf
-
-
-class FloatSymbol(TypedSymbol):
- def __init__(self, scope, value=None):
- super().__init__("float", scope, "float", value)
-
- def __str__(self):
- buf = "float"
- if self.value is not None:
- buf += ":"
- buf += str(self.value)
- return buf
diff --git a/srunner/osc2/symbol_manager/unit_symbol.py b/srunner/osc2/symbol_manager/unit_symbol.py
deleted file mode 100644
index 08bff3b..0000000
--- a/srunner/osc2/symbol_manager/unit_symbol.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-from srunner.osc2.utils.log_manager import LOG_ERROR
-
-
-class UnitSymbol(BaseSymbol):
- def __init__(self, name, scope, physical_name):
- super().__init__(name, scope)
- self.physical_name = physical_name
diff --git a/srunner/osc2/symbol_manager/variable_symbol.py b/srunner/osc2/symbol_manager/variable_symbol.py
deleted file mode 100644
index 0230238..0000000
--- a/srunner/osc2/symbol_manager/variable_symbol.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from srunner.osc2.symbol_manager.typed_symbol import TypedSymbol
-
-
-class VariableSymbol(TypedSymbol):
- def __init__(self, name, scope, type, value=None):
- super().__init__(name, scope, type, value)
diff --git a/srunner/osc2/symbol_manager/wait_symbol.py b/srunner/osc2/symbol_manager/wait_symbol.py
deleted file mode 100644
index 4987df8..0000000
--- a/srunner/osc2/symbol_manager/wait_symbol.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from srunner.osc2.symbol_manager.base_symbol import BaseSymbol
-
-
-class WaitSymbol(BaseSymbol):
- def __init__(self, scope):
- super().__init__("wait", scope)
diff --git a/srunner/osc2/utils/__init__.py b/srunner/osc2/utils/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2/utils/log_manager.py b/srunner/osc2/utils/log_manager.py
deleted file mode 100644
index 4ea0102..0000000
--- a/srunner/osc2/utils/log_manager.py
+++ /dev/null
@@ -1,207 +0,0 @@
-import logging
-import sys
-
-from srunner.osc2.osc_preprocess.import_msg import create_ImportMsg as import_msg
-
-try:
- from tests.run_testcase.log_msg import create_LogMsg as log_msg
-except ImportError:
- log_msg = None
-
-ERROR_WITH_EXIT = False
-ERROR_COUNT = 0
-ERROR_MAX_COUNT = 10 # Output the maximum number of errors
-LOG_LEVEL = logging.ERROR # The lowest level of output logs
-LOG_FORMAT = "%(message)s " # Output log format
-DATE_FORMAT = "%Y-%m-%d %H:%M:%S %a " # Format of the output time
-
-logging.basicConfig(
- level=LOG_LEVEL,
- format=LOG_FORMAT,
- datefmt=DATE_FORMAT,
-)
-
-
-def LOG_DEBUG(msg, token=None, line=None, column=None):
- if token is not None:
- file_path, line = import_msg.get_msg(token.line)
- msg = (
- '[Debug] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(token.column)
- + ", "
- + msg
- )
- elif line is not None and column is not None:
- file_path, line = import_msg.get_msg(line)
- msg = (
- '[Debug] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(column)
- + ", "
- + msg
- )
- logging.debug(msg)
-
-
-def LOG_INFO(msg, token=None, line=None, column=None):
- if token is not None:
- file_path, line = import_msg.get_msg(token.line)
- msg = (
- '[Info] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(token.column)
- + ", "
- + msg
- )
- elif line is not None and column is not None:
- file_path, line = import_msg.get_msg(line)
- msg = (
- '[Info] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(column)
- + ", "
- + msg
- )
- logging.info(msg)
-
-
-def LOG_WARNING(msg, token=None, line=None, column=None):
- # Log information required when running run_symbol_testcases.py
- run_log_msg = ""
- if token is not None:
- file_path, line = import_msg.get_msg(token.line)
- run_log_msg = (
- "[Warning]" + " line " + str(line) + ":" + str(token.column) + ", " + msg
- )
- msg = (
- '[Warning] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(token.column)
- + ", "
- + msg
- )
- elif line is not None and column is not None:
- file_path, line = import_msg.get_msg(line)
- run_log_msg = (
- "[Warning]" + " line " + str(line) + ":" + str(column) + ", " + msg
- )
- msg = (
- '[Warning] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(column)
- + ", "
- + msg
- )
- if log_msg and log_msg.is_open:
- log_msg.add_log_msg(run_log_msg)
- else:
- logging.warning(msg)
-
-
-def LOG_ERROR(msg, token=None, line=None, column=None):
- global ERROR_WITH_EXIT
- global ERROR_COUNT
- global ERROR_MAX_COUNT
-
- # Log information required when running run_symbol_testcases.py
- run_log_msg = ""
- if token is not None:
- file_path, line = import_msg.get_msg(token.line)
- run_log_msg = (
- "[Error]" + " line " + str(line) + ":" + str(token.column) + ", " + msg
- )
- msg = (
- '[Error] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(token.column)
- + ", "
- + msg
- )
- elif line is not None and column is not None:
- file_path, line = import_msg.get_msg(line)
- run_log_msg = "[Error]" + " line " + str(line) + ":" + str(column) + ", " + msg
- msg = (
- '[Error] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(column)
- + ", "
- + msg
- )
- # If you run run_symbol_testcases.py, no error is reported
- if log_msg and log_msg.is_open:
- log_msg.add_log_msg(run_log_msg)
- else:
- logging.error(msg)
- ERROR_COUNT += 1
- if ERROR_COUNT >= ERROR_MAX_COUNT:
- if ERROR_WITH_EXIT:
- sys.exit(1)
- else:
- pass
- else:
- pass
-
-
-def LOG_CRITICAL(msg, token=None, line=None, column=None):
- global ERROR_WITH_EXIT
- global ERROR_COUNT
- global ERROR_MAX_COUNT
-
- if token is not None:
- file_path, line = import_msg.get_msg(token.line)
- msg = (
- '[Error] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(token.column)
- + ", "
- + msg
- )
- elif line is not None and column is not None:
- file_path, line = import_msg.get_msg(line)
- msg = (
- '[Error] file "'
- + file_path
- + '", line '
- + str(line)
- + ":"
- + str(column)
- + ", "
- + msg
- )
- logging.critical(msg)
- ERROR_COUNT += 1
- if ERROR_COUNT >= ERROR_MAX_COUNT:
- if ERROR_WITH_EXIT:
- sys.exit(1)
- else:
- pass
- else:
- pass
diff --git a/srunner/osc2/utils/relational_operator.py b/srunner/osc2/utils/relational_operator.py
deleted file mode 100644
index 27f5b3a..0000000
--- a/srunner/osc2/utils/relational_operator.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import operator
-from enum import Enum
-
-
-class RelationalOperator(Enum):
- EQUALITY = "=="
- INEQUALITY = "!="
- LESS_THAN = "<"
- LESS_OR_EQUAL = "<="
- GREATER_THAN = ">"
- GREATER_OR_EQUAL = ">="
- MEMBERSHIP = "in"
-
- @staticmethod
- def values():
- return [member.value for member in RelationalOperator]
diff --git a/srunner/osc2/utils/tools.py b/srunner/osc2/utils/tools.py
deleted file mode 100644
index 8dff2fa..0000000
--- a/srunner/osc2/utils/tools.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import re
-from typing import Tuple
-
-from antlr4.tree.Tree import TerminalNodeImpl
-
-
-# node:Input parameter, node of the tree
-# nodes:Enter the parameter, number the nodes in traversal order, and line the nodes with the number
-# pindex:Id of the parent node
-# g:The graph object of graphviz
-def render_symbol(node, nodes, pindex, g):
- if not isinstance(node, Tuple):
- name = str(node)
-
- index = len(nodes)
- nodes.append(index)
-
- g.node(str(index), name)
- if index != pindex:
- g.edge(
- str(pindex), str(index)
- ) # The edge is from father to son, if there is no upside down tree
- for i in range(0, node.get_number_of_symbols()):
- render_symbol(node.get_child_symbol(i), nodes, index, g)
-
-
-# The parse tree is printed as LOG
-def print_parse_tree(tree, ruleNames, indent=0):
- if isinstance(tree, TerminalNodeImpl):
- if not re.match(r"\r?\n[ \t]*", tree.getText()):
- print("{0}TOKEN '{1}'".format(" " * indent, tree.getText()))
- else:
- print("{0}{1}".format(" " * indent, ruleNames[tree.getRuleIndex()]))
- for child in tree.children:
- print_parse_tree(child, ruleNames, indent + 1)
-
-
-def multi_field_name_append(names, field_name):
- if names == "":
- names = field_name
- else:
- names = names + "%" + field_name
- return names
-
-
-def multi_field_name_split(names):
- return names.split("%")
-
-
-def is_multi_name(names):
- if not names:
- return False
- elif "%" in names:
- return True
- else:
- return False
diff --git a/srunner/osc2_dm/__init__.py b/srunner/osc2_dm/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_dm/environment.py b/srunner/osc2_dm/environment.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_dm/map.py b/srunner/osc2_dm/map.py
deleted file mode 100644
index a700a14..0000000
--- a/srunner/osc2_dm/map.py
+++ /dev/null
@@ -1,253 +0,0 @@
-from enum import IntEnum
-from typing import Any
-
-
-class map:
- map_file = ""
- routes = []
- junctions = []
- driving_rule = []
-
- # method
- def odr_to_route_point(self, road_id, lane_id, s, t):
- pass
-
- def xyz_to_route_point(self, x, y, z):
- pass
-
- def route_point_to_xyz(self, route_point):
- pass
-
- def outer_side(self):
- pass
-
- def inner_side(self):
- pass
-
- def create_route(self, routes, connect_points_by, legal_route):
- pass
-
- def create_route_point(self, route, s, t):
- pass
-
- def create_xyz_point(self, x, y, z, connect_as):
- pass
-
- def create_odr_point(self, road_id, lane_id, s, t):
- pass
-
- def create_path(self):
- pass
-
- def create_trajectory(self):
- pass
-
- def resolve_relative_path(self):
- pass
-
- def resolve_relative_trajectory(self):
- pass
-
- def get_map_file(self):
- pass
-
- # modifier
- def number_of_lanes(self, route, num_of_lanes, lane_type, lane_use, directionality):
- pass
-
- def routes_are_in_sequence(self, preceding, succeeding, road):
- pass
-
- def roads_follow_in_junction(
- self,
- junction,
- in_road,
- out_road,
- direction,
- clockwise_count,
- number_of_roads,
- in_lane,
- out_lane,
- junction_route,
- resulting_route,
- ):
- pass
-
- def routes_overlap(route1, route2, overlap_kind):
- pass
-
- def lane_side(lane1, side, lane2, count, lane_section):
- pass
-
- def compound_lane_side(lane1, side, lane2, count, route):
- pass
-
- def end_lane(lane):
- pass
-
- def start_lane(lane):
- pass
-
- def crossing_connects(crossing, start_lane, end_lane, start_s_coord, start_angle):
- pass
-
- def routes_are_opposite(route1, route2, containing_road, lateral_overlap):
- pass
-
- @staticmethod
- def set_map_file(file: str) -> Any:
- pass
-
-
-class driving_rule(IntEnum):
- left_hand_traffic = (1,)
- right_hand_traffic = 2
-
-
-class junction:
- def __init__(self) -> None:
- self.roads = []
-
-
-class route:
- # children compound_route, path, route_element
- pass
-
-
-class directionality(IntEnum):
- pass
-
-
-class route_element(route):
- # crossing, lane, lane_section, odr_point, path, road, route_point, xyz_point
- pass
-
-
-class road(route_element):
- pass
-
-
-class lane_section(route_element):
- pass
-
-
-class lane(route_element):
- pass
-
-
-class crossing(route_element):
- pass
-
-
-class lane_type(IntEnum):
- pass
-
-
-class lane_use(IntEnum):
- pass
-
-
-class side_left_right(IntEnum):
- pass
-
-
-class lon_lat(IntEnum):
- pass
-
-
-class crossing_type:
- pass
-
-
-class crossing_marking(IntEnum):
- pass
-
-
-class crossing_use(IntEnum):
- pass
-
-
-class crossing_elevation(IntEnum):
- pass
-
-
-class compound_route(route):
- pass
-
-
-class compound_lane(compound_route):
- pass
-
-
-class junction_direction(IntEnum):
- pass
-
-
-class route_overlap_kind(IntEnum):
- pass
-
-
-class lateral_overlap_kind(IntEnum):
- pass
-
-
-class route_point(route_element):
- pass
-
-
-class xyz_point(route_element):
- pass
-
-
-class odr_point(route_element):
- pass
-
-
-class connect_route_points(IntEnum):
- pass
-
-
-class path(route, route_element):
- pass
-
-
-class relative_path:
- # relative_path_odr, relative_path_pose_3d, relative_path_st
- pass
-
-
-class relative_path_pose_3d(relative_path):
- pass
-
-
-class relative_path_st(relative_path):
- pass
-
-
-class relative_path_odr(relative_path):
- pass
-
-
-class relative_transform(IntEnum):
- pass
-
-
-class trajectory:
- pass
-
-
-class relative_trajectory:
- # relative_trajectory_odr, relative_trajectory_pose_3d, relative_trajectory_st
- pass
-
-
-class relative_trajectory_pose_3d(relative_trajectory):
- pass
-
-
-class relative_trajectory_st(relative_trajectory):
- pass
-
-
-class relative_trajectory_odr(relative_trajectory):
- pass
diff --git a/srunner/osc2_dm/movable_object.py b/srunner/osc2_dm/movable_object.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_dm/osc_action.py b/srunner/osc2_dm/osc_action.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_dm/osc_actor.py b/srunner/osc2_dm/osc_actor.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_dm/physical_object.py b/srunner/osc2_dm/physical_object.py
deleted file mode 100644
index 4c5c9b9..0000000
--- a/srunner/osc2_dm/physical_object.py
+++ /dev/null
@@ -1,47 +0,0 @@
-class PhysicalObject(object):
- # All locations have been converted to meters and speeds to meters/second.
- def __init__(self, name: str, si_base_exponent: dict) -> None:
- self.physical_name = name
- self.si_base_exponent = si_base_exponent
-
- def __add__(self, right):
- physical_name = self.physical_name + "+" + right.physical_name
- si_base_exponent = self.si_base_exponent
- return PhysicalObject(physical_name, si_base_exponent)
-
- def __sub__(self, right):
- physical_name = self.physical_name + "-" + right.physical_name
- si_base_exponent = self.si_base_exponent
- return PhysicalObject(physical_name, si_base_exponent)
-
- def __truediv__(self, right):
- physical_name = self.physical_name + "/" + right.physical_name
- si_base_exponent = self.si_base_exponent
- for key, value in right.si_base_exponent.items():
- if key in si_base_exponent:
- si_base_exponent[key] -= value
- else:
- si_base_exponent[key] = -value
- return PhysicalObject(physical_name, si_base_exponent)
-
- # Multiplication
- def __mul__(self, right):
- physical_name = self.physical_name + "*" + right.physical_name
- si_base_exponent = self.si_base_exponent
- for key, value in right.si_base_exponent.items():
- if key in si_base_exponent:
- si_base_exponent[key] += value
- else:
- si_base_exponent[key] = value
- return PhysicalObject(physical_name, si_base_exponent)
-
-
-class UnitObject(object):
- def __init__(self, name, physical, factor=1.0, offset=0) -> None:
- self.unit_name = name
- self.physical = physical
- self.factor = factor
- self.offset = offset
-
- def __str__(self) -> str:
- return str(self.unit_name)
diff --git a/srunner/osc2_dm/physical_types.py b/srunner/osc2_dm/physical_types.py
deleted file mode 100644
index 68f0f0e..0000000
--- a/srunner/osc2_dm/physical_types.py
+++ /dev/null
@@ -1,156 +0,0 @@
-import math
-import random
-import re
-import sys
-from typing import List
-
-from srunner.osc2_dm.physical_object import *
-
-
-class Range(object):
- def __init__(self, start, end):
- super().__init__()
- # Store everything using float
- self.start = start
- self.end = end
-
- # String initialization,[4..6]
- @classmethod
- def from_str(cls, s: str):
- values = s[1:-1].split("..")
-
- start = float(values[0]) if values[0] else 0
- end = float(values[1]) if values[1] else math.inf
-
- return cls(start, end)
-
- def __str__(self) -> str:
- return "[" + str(self.start) + ".." + str(self.end) + "]"
-
- def __neg__(self):
- self.start = -self.start
- self.end = -self.end
- return self
-
- def is_in_range(self, num) -> bool:
- if num >= self.start and num < self.end:
- return True
- else:
- return False
-
- def gen_single_value(self):
- return random.uniform(self.start, self.end)
-
-
-class Physical(object):
- def __init__(self, num, unit):
- super().__init__()
- # num can be of the range type or the float type in the number category
- self.num = num
- self.unit = unit
-
- # from string init
- @classmethod
- def from_str(cls, s: str):
- # First match if it is a range type ([3..6] format), and then match pure number types
- if not s:
- return None
- match_obj = re.match(r"\[.*\]", s)
- if match_obj:
- range_num_indexs = match_obj.span()
- num_start = range_num_indexs[0]
- num_end = range_num_indexs[1]
- num = Range.from_str(s[num_start:num_end])
- unit = s[num_end:]
- return cls(num, unit)
- else:
- match_obj = re.match(r"\d+\.?\d*", s)
- if match_obj:
- nums_indexs = match_obj.span()
- num_start = nums_indexs[0]
- num_end = nums_indexs[1]
- num = float(s[num_start:num_end])
- unit = s[num_end:]
- return cls(num, unit)
- else:
- print("wrong physical")
-
- def is_in_range(self, value) -> bool:
- if isinstance(self.num, Range):
- return self.num.is_in_range(value)
- else:
- return value == self.num
-
- def is_single_value(self) -> bool:
- if isinstance(self.num, Range):
- return False
- else:
- return True
-
- def gen_single_value(self):
- if self.is_single_value():
- return self.num
- else:
- return self.num.gen_single_value()
-
- def gen_physical_value(self):
- # The speed unit in Carla is m/s, so it is automatically converted to m/s
- value = self.gen_single_value()
- value *= self.unit.factor
- value += self.unit.offset
- return value
-
- def __str__(self) -> str:
- return str(self.num) + str(self.unit.unit_name)
-
- # Addition
- def __add__(self, right):
- num = (
- self.num
- + ((right.num * right.unit.factor + right.unit.offset) - self.unit.offset)
- / self.unit.factor
- )
- factor = self.unit.factor
- offset = self.unit.offset + right.unit.offset / self.unit.factor
- name = self.unit.unit_name + "+" + right.unit.unit_name
- physical = self.unit.physical + right.unit.physical
- unit = UnitObject(name, physical, factor, offset)
- return Physical(num, unit)
-
- # Subtraction
- def __sub__(self, right):
- num = (
- self.num
- - ((right.num * right.unit.factor + right.unit.offset) - self.unit.offset)
- / self.unit.factor
- )
- factor = self.unit.factor
- offset = self.unit.offset + right.unit.offset / self.unit.factor
- name = self.unit.unit_name + "-" + right.unit.unit_name
- physical = self.unit.physical - right.unit.physical
- unit = UnitObject(name, physical, factor, offset)
- return Physical(num, unit)
-
- # Division
- def __truediv__(self, right):
- num = self.num / right.num
- factor = self.unit.factor / right.unit.factor
- offset = (
- self.unit.offset / right.unit.factor + right.unit.offset / self.unit.factor
- )
- name = self.unit.unit_name + "/" + right.unit.unit_name
- physical = self.unit.physical / right.unit.physical
- unit = UnitObject(name, physical, factor, offset)
- return Physical(num, unit)
-
- # Multiplication
- def __mul__(self, right):
- num = self.num * right.num
- factor = self.unit.factor * right.unit.factor
- offset = (
- self.unit.offset * right.unit.factor + right.unit.offset * self.unit.factor
- )
- name = self.unit.unit_name + "*" + right.unit.unit_name
- physical = self.unit.physical * right.unit.physical
- unit = UnitObject(name, physical, factor, offset)
- return Physical(num, unit)
diff --git a/srunner/osc2_dm/stationary_object.py b/srunner/osc2_dm/stationary_object.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_stdlib/__init__.py b/srunner/osc2_stdlib/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/srunner/osc2_stdlib/event.py b/srunner/osc2_stdlib/event.py
deleted file mode 100644
index daf505e..0000000
--- a/srunner/osc2_stdlib/event.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import sys
-from math import sqrt
-
-from srunner.osc2_stdlib.observer import Observer
-from srunner.osc2_stdlib.variables import Variable
-from srunner.scenariomanager.carla_data_provider import CarlaDataProvider
-from srunner.scenariomanager.scenarioatomics.atomic_trigger_conditions import (
- DriveDistance,
- InTriggerNearCollision,
-)
-
-
-class Event:
- ego_vehicle_location = None
- npc_location = None
- other_car = None
- distance = None
-
- @classmethod
- def drive_distance(cls, other_car, distance):
- cls.other_car = other_car
- cls.distance = distance
- actor = CarlaDataProvider.get_actor_by_name(cls.other_car)
- ret = DriveDistance(actor, cls.distance)
- return ret
-
- @classmethod
- def abs_distance_between_locations(cls, reference_actor, actor):
- actor1 = CarlaDataProvider.get_actor_by_name(reference_actor)
- actor2 = CarlaDataProvider.get_actor_by_name(actor)
- transform_ego_x = actor1.get_transform().location.x
- transform_ego_y = actor1.get_transform().location.y
- transform_npc_x = actor2.get_transform().location.x
- transform_npc_y = actor2.get_transform().location.y
- x = abs(transform_npc_x - transform_ego_x)
- y = abs(transform_npc_y - transform_ego_y)
- dis = sqrt(pow(x, 2) + pow(y, 2))
- func_name = sys._getframe().f_code.co_name
- Variable.set_arg({func_name: dis})
- return dis
-
- @classmethod
- def near_collision(cls, other_car, distance):
- cls.other_car = other_car
- cls.distance = float(distance)
- actor = CarlaDataProvider.get_actor_by_name(cls.other_car)
- reference_actor = CarlaDataProvider.get_actor_by_name("ego_vehicle")
- ret = InTriggerNearCollision(reference_actor, actor, cls.distance)
- return ret
-
-
-class NearCollision(Observer):
- def update(self, EventListener, *args, **kwargs):
- if EventListener.handling_collisions():
- print("Too close, collision imminent!")
diff --git a/srunner/osc2_stdlib/misc_object.py b/srunner/osc2_stdlib/misc_object.py
deleted file mode 100644
index 3f054ff..0000000
--- a/srunner/osc2_stdlib/misc_object.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from enum import Enum
-
-
-class AVCarSide(Enum):
- behind = 1
- ahead_of = 2
-
-
-class ScenarioEvent(Enum):
- start = 1
- end = 2
- all = 3
-
-
-class Position:
- def __init__(self) -> None:
- pass
-
-
-class LanePosition(Position):
- def __init__(self, road_id, lane_id, offset, s) -> None:
- self.road_id = road_id
- self.lane_id = lane_id
- self.offset = offset
- self.s = s
-
-
-class WorldPosition(Position):
- def __init__(self, x=0, y=0, z=0, pitch=0, yaw=0, roll=0) -> None:
- self.x = x
- self.y = y
- self.z = z
- self.pitch = pitch
- self.yaw = yaw
- self.roll = roll
diff --git a/srunner/osc2_stdlib/modifier.py b/srunner/osc2_stdlib/modifier.py
deleted file mode 100644
index 25e5b77..0000000
--- a/srunner/osc2_stdlib/modifier.py
+++ /dev/null
@@ -1,158 +0,0 @@
-import random
-import sys
-
-from srunner.osc2_dm.physical_types import Physical
-from srunner.osc2_stdlib.misc_object import AVCarSide, ScenarioEvent
-from srunner.osc2_stdlib.vehicle import Vehicle
-
-
-class Modifier:
- def __init__(self, actor_name: str, name: str) -> None:
- self.actor_name = actor_name
- self.name = name
- self.args = {}
-
- def set_args(self, kw_args) -> None:
- self.args = kw_args
-
- def get_name(self) -> str:
- return self.name
-
- def get_actor_name(self) -> str:
- return self.actor_name
-
- def __str__(self) -> str:
- s = f"{self.name}("
- for key, value in self.args.items():
- s += str(key) + ":" + str(value) + ","
- return s + ")"
-
-
-class SpeedModifier(Modifier):
- # speed([speed: ], [faster_than: | slower_than: ][, at: ])
- def __init__(self, actor_name: str, name: str) -> None:
- super().__init__(actor_name, name)
- self.args = {}
-
- def set_speed(self, speed) -> None:
- self.args["speed"] = speed
-
- def get_speed(self):
- speed = self.args["speed"]
- if isinstance(speed, Physical):
- return Physical(speed.gen_single_value(), speed.unit)
- else:
- print("[Error] 'speed' parameter of SpeedModifier must be 'Physical' type")
- sys.exit(1)
-
- def set_relative_car(self, car: Vehicle, side: AVCarSide) -> None:
- self.args[side] = car
-
- def set_trigger_point(self, trigger_point: ScenarioEvent) -> None:
- self.args["at"] = trigger_point
-
-
-class PositionModifier(Modifier):
- # position([distance: ] | time: