Loading pcbnew/dsn.cpp +25 −20 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ const static KEYWORD tokens[] = { TOKDEF(negative_diagonal), TOKDEF(net), TOKDEF(net_number), TOKDEF(net_out), TOKDEF(net_pin_changes), TOKDEF(nets), TOKDEF(network), Loading Loading @@ -673,52 +674,62 @@ L_read: } curTok = T_QUOTE_DEF; goto exit; } else if( *cur == '(' ) if( *cur == '(' ) { curText.clear(); curText += *cur; curTok = T_LEFT; head = cur+1; goto exit; } else if( *cur == ')' ) if( *cur == ')' ) { curText.clear(); curText += *cur; curTok = T_RIGHT; head = cur+1; goto exit; } /* get the dash out of a <pin_reference> which is embedded for example like: U2-14 or "U2"-"14" This is detectable by a non-space immediately preceeding the dash. */ else if( *cur == '-' && cur>start && !isspace( cur[-1] ) ) if( *cur == '-' && cur>start && !isspace( cur[-1] ) ) { head = cur+1; curText.clear(); curText += '-'; curTok = T_DASH; goto exit; } // handle T_NUMBER else if( strchr( "+-.0123456789", *cur ) ) if( strchr( "+-.0123456789", *cur ) ) { head = cur+1; while( head<limit && strchr( ".0123456789", *head ) ) ++head; if( (head<limit && isspace(*head)) || *head==')' || *head=='(' || head==limit ) { curText.clear(); curText.append( cur, head ); curTok = T_NUMBER; goto exit; } // else it was something like +5V, reset head back } // a quoted string else if( *cur == stringDelimiter ) if( *cur == stringDelimiter ) { ++cur; // skip over the leading delimiter: ",', or $ Loading @@ -739,11 +750,11 @@ L_read: ++head; // skip over the trailing delimiter curTok = T_STRING; goto exit; } // a token we hope to find in the tokens[] array. If not, then // call it a T_SYMBOL. else { head = cur+1; while( head<limit && !isspace( *head ) && *head!=')' && *head!='(' ) Loading @@ -757,16 +768,8 @@ L_read: if( found != -1 ) curTok = (DSN_T) found; else // unrecogized token { else // unrecogized token, call it a symbol curTok = T_SYMBOL; /* wxString errTxt( CONV_FROM_UTF8( curText.c_str() ) ); errTxt << wxT(" ") << _("is an unrecognized token"); ThrowIOError( errTxt, cur-start+1 ); */ } } } Loading @@ -776,6 +779,8 @@ exit: // single point of exit next = head; // printf("tok:\"%s\"\n", curText.c_str() ); return curTok; } Loading pcbnew/dsn.h +1 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ enum DSN_T { T_negative_diagonal, T_net, T_net_number, T_net_out, T_net_pin_changes, T_nets, T_network, Loading Loading
pcbnew/dsn.cpp +25 −20 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ const static KEYWORD tokens[] = { TOKDEF(negative_diagonal), TOKDEF(net), TOKDEF(net_number), TOKDEF(net_out), TOKDEF(net_pin_changes), TOKDEF(nets), TOKDEF(network), Loading Loading @@ -673,52 +674,62 @@ L_read: } curTok = T_QUOTE_DEF; goto exit; } else if( *cur == '(' ) if( *cur == '(' ) { curText.clear(); curText += *cur; curTok = T_LEFT; head = cur+1; goto exit; } else if( *cur == ')' ) if( *cur == ')' ) { curText.clear(); curText += *cur; curTok = T_RIGHT; head = cur+1; goto exit; } /* get the dash out of a <pin_reference> which is embedded for example like: U2-14 or "U2"-"14" This is detectable by a non-space immediately preceeding the dash. */ else if( *cur == '-' && cur>start && !isspace( cur[-1] ) ) if( *cur == '-' && cur>start && !isspace( cur[-1] ) ) { head = cur+1; curText.clear(); curText += '-'; curTok = T_DASH; goto exit; } // handle T_NUMBER else if( strchr( "+-.0123456789", *cur ) ) if( strchr( "+-.0123456789", *cur ) ) { head = cur+1; while( head<limit && strchr( ".0123456789", *head ) ) ++head; if( (head<limit && isspace(*head)) || *head==')' || *head=='(' || head==limit ) { curText.clear(); curText.append( cur, head ); curTok = T_NUMBER; goto exit; } // else it was something like +5V, reset head back } // a quoted string else if( *cur == stringDelimiter ) if( *cur == stringDelimiter ) { ++cur; // skip over the leading delimiter: ",', or $ Loading @@ -739,11 +750,11 @@ L_read: ++head; // skip over the trailing delimiter curTok = T_STRING; goto exit; } // a token we hope to find in the tokens[] array. If not, then // call it a T_SYMBOL. else { head = cur+1; while( head<limit && !isspace( *head ) && *head!=')' && *head!='(' ) Loading @@ -757,16 +768,8 @@ L_read: if( found != -1 ) curTok = (DSN_T) found; else // unrecogized token { else // unrecogized token, call it a symbol curTok = T_SYMBOL; /* wxString errTxt( CONV_FROM_UTF8( curText.c_str() ) ); errTxt << wxT(" ") << _("is an unrecognized token"); ThrowIOError( errTxt, cur-start+1 ); */ } } } Loading @@ -776,6 +779,8 @@ exit: // single point of exit next = head; // printf("tok:\"%s\"\n", curText.c_str() ); return curTok; } Loading
pcbnew/dsn.h +1 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ enum DSN_T { T_negative_diagonal, T_net, T_net_number, T_net_out, T_net_pin_changes, T_nets, T_network, Loading