diff --git a/pydbc/ldf.g4 b/pydbc/ldf.g4 index 904dceb..1036a8d 100644 --- a/pydbc/ldf.g4 +++ b/pydbc/ldf.g4 @@ -135,10 +135,10 @@ node_attributes_def: ; node_attribute: - name = node_name '{' - 'LIN_protocol' '=' version = protocol_version ';' - 'configured_NAD' '=' n0 = diag_address ';' - ('initial_NAD' '=' n1 = diag_address ';')? + name = identifierValue '{' + 'LIN_protocol' '=' version = stringValue ';' + 'configured_NAD' '=' n0 = intValue ';' + ('initial_NAD' '=' n1 = intValue ';')? attrs = attributes_def '}' ; @@ -162,7 +162,7 @@ configurable_frames: ; configurable_frame: - fname = identifierValue ('=' mid = message_id)? ';' // Note: optional part is required for LIN < 2.1 -- TODO: syn. predicate! + fname = identifierValue ('=' mid = intValue)? ';' // Note: optional part is required for LIN < 2.1 -- TODO: syn. predicate! ; node_composition_def: @@ -188,7 +188,7 @@ signal_def: ; signal_item: - sname = signal_name ':' ssize = intValue ',' initValue = init_value ',' pub = identifierValue (',' sub += identifierValue)* ';' + sname = identifierValue ':' ssize = intValue ',' initValue = init_value ',' pub = identifierValue (',' sub += identifierValue)* ';' ; init_value: @@ -230,7 +230,7 @@ diagnostic_signal_def: ; diagnostic_item: - name = identifierValue ':' size = signal_size ',' initValue = init_value ';' + name = identifierValue ':' size = init_value ',' initValue = init_value ';' ; signal_groups_def: @@ -246,7 +246,7 @@ signal_group: ; signal_group_item: - sname = signal_name ',' goffs = intValue ';' + sname = identifierValue ',' goffs = intValue ';' ; frame_def: @@ -260,7 +260,7 @@ frame_item: ; frame_signal: - sname = signal_name ',' soffs = intValue ';' + sname = identifierValue ',' soffs = intValue ';' ; sporadic_frame_def: @@ -329,7 +329,7 @@ schedule_table_entry: ; schedule_table_command: - c = command 'delay' f = frame_time 'ms' ';' + c = command 'delay' f = number 'ms' ';' ; command: @@ -385,7 +385,7 @@ signal_representation_def: ; signal_representation_entry: - enc = signal_encoding_type_name ':' names += signal_name (',' names += signal_name)* ';' + enc = identifierValue ':' names += identifierValue (',' names += identifierValue)* ';' ; /* diff --git a/pydbc/py3/dbcLexer.py b/pydbc/py3/dbcLexer.py index 51fa480..551c2f9 100644 --- a/pydbc/py3/dbcLexer.py +++ b/pydbc/py3/dbcLexer.py @@ -9,7 +9,7 @@ def serializedATN(): with StringIO() as buf: buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2:") - buf.write("\u0248\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") + buf.write("\u0247\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") buf.write("\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") buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") @@ -55,27 +55,27 @@ def serializedATN(): buf.write("\3\66\6\66\u021f\n\66\r\66\16\66\u0220\3\66\5\66\u0224") buf.write("\n\66\3\66\6\66\u0227\n\66\r\66\16\66\u0228\3\66\5\66") buf.write("\u022c\n\66\3\67\5\67\u022f\n\67\3\67\6\67\u0232\n\67") - buf.write("\r\67\16\67\u0233\38\38\38\39\39\39\39\3:\3:\3:\7:\u0240") - buf.write("\n:\f:\16:\u0243\13:\3:\3:\3;\3;\2\2<\3\3\5\4\7\5\t\6") + buf.write("\r\67\16\67\u0233\38\38\38\39\39\39\39\3:\3:\7:\u023f") + buf.write("\n:\f:\16:\u0242\13:\3:\3:\3;\3;\2\2<\3\3\5\4\7\5\t\6") buf.write("\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20") buf.write("\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65") buf.write("\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60") buf.write("_\61a\62c\63e\64g\65i\2k\66m\67o\2q8s9u:\3\2\t\5\2C\\") buf.write("aac|\6\2\62;C\\aac|\4\2GGgg\4\2--//\n\2$$))^^ddhhpptt") - buf.write("vv\5\2\13\f\17\17\"\"\4\2$$^^\2\u0256\2\3\3\2\2\2\2\5") - buf.write("\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") - buf.write("\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") - buf.write("\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") - buf.write("\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2") - buf.write("\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61") - buf.write("\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") - buf.write("\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3") - buf.write("\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M") - buf.write("\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2") - buf.write("W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2") - buf.write("\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2k\3\2\2") - buf.write("\2\2m\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\3w\3\2") - buf.write("\2\2\5\u0081\3\2\2\2\7\u0083\3\2\2\2\t\u0085\3\2\2\2\13") + buf.write("vv\5\2\13\f\17\17\"\"\3\2$$\2\u0254\2\3\3\2\2\2\2\5\3") + buf.write("\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") + buf.write("\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") + buf.write("\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") + buf.write("\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2") + buf.write("\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3") + buf.write("\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") + buf.write("\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2") + buf.write("\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3") + buf.write("\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W") + buf.write("\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2") + buf.write("a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2k\3\2\2\2") + buf.write("\2m\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\3w\3\2\2") + buf.write("\2\5\u0081\3\2\2\2\7\u0083\3\2\2\2\t\u0085\3\2\2\2\13") buf.write("\u0092\3\2\2\2\r\u0096\3\2\2\2\17\u009a\3\2\2\2\21\u009c") buf.write("\3\2\2\2\23\u009e\3\2\2\2\25\u00a0\3\2\2\2\27\u00a2\3") buf.write("\2\2\2\31\u00a4\3\2\2\2\33\u00a6\3\2\2\2\35\u00a8\3\2") @@ -91,7 +91,7 @@ def serializedATN(): buf.write("_\u01d1\3\2\2\2a\u01d7\3\2\2\2c\u01de\3\2\2\2e\u01e3\3") buf.write("\2\2\2g\u01fa\3\2\2\2i\u0201\3\2\2\2k\u020b\3\2\2\2m\u022e") buf.write("\3\2\2\2o\u0235\3\2\2\2q\u0238\3\2\2\2s\u023c\3\2\2\2") - buf.write("u\u0246\3\2\2\2wx\7D\2\2xy\7Q\2\2yz\7a\2\2z{\7V\2\2{|") + buf.write("u\u0245\3\2\2\2wx\7D\2\2xy\7Q\2\2yz\7a\2\2z{\7V\2\2{|") buf.write("\7Z\2\2|}\7a\2\2}~\7D\2\2~\177\7W\2\2\177\u0080\7a\2\2") buf.write("\u0080\4\3\2\2\2\u0081\u0082\7<\2\2\u0082\6\3\2\2\2\u0083") buf.write("\u0084\7=\2\2\u0084\b\3\2\2\2\u0085\u0086\7U\2\2\u0086") @@ -248,13 +248,13 @@ def serializedATN(): buf.write("\u0233\u0234\3\2\2\2\u0234n\3\2\2\2\u0235\u0236\7^\2\2") buf.write("\u0236\u0237\t\6\2\2\u0237p\3\2\2\2\u0238\u0239\t\7\2") buf.write("\2\u0239\u023a\3\2\2\2\u023a\u023b\b9\2\2\u023br\3\2\2") - buf.write("\2\u023c\u0241\7$\2\2\u023d\u0240\5o8\2\u023e\u0240\n") - buf.write("\b\2\2\u023f\u023d\3\2\2\2\u023f\u023e\3\2\2\2\u0240\u0243") - buf.write("\3\2\2\2\u0241\u023f\3\2\2\2\u0241\u0242\3\2\2\2\u0242") - buf.write("\u0244\3\2\2\2\u0243\u0241\3\2\2\2\u0244\u0245\7$\2\2") - buf.write("\u0245t\3\2\2\2\u0246\u0247\t\5\2\2\u0247v\3\2\2\2\23") - buf.write("\2\u01f8\u01fe\u0203\u0208\u020b\u0210\u0216\u021a\u0220") - buf.write("\u0223\u0228\u022b\u022e\u0233\u023f\u0241\3\2\3\2") + buf.write("\2\u023c\u0240\7$\2\2\u023d\u023f\n\b\2\2\u023e\u023d") + buf.write("\3\2\2\2\u023f\u0242\3\2\2\2\u0240\u023e\3\2\2\2\u0240") + buf.write("\u0241\3\2\2\2\u0241\u0243\3\2\2\2\u0242\u0240\3\2\2\2") + buf.write("\u0243\u0244\7$\2\2\u0244t\3\2\2\2\u0245\u0246\t\5\2\2") + buf.write("\u0246v\3\2\2\2\22\2\u01f8\u01fe\u0203\u0208\u020b\u0210") + buf.write("\u0216\u021a\u0220\u0223\u0228\u022b\u022e\u0233\u0240") + buf.write("\3\2\3\2") return buf.getvalue()