src/parser.cpp

changeset 125
85814c0918c5
parent 119
bdf8d46c145f
child 133
dbbdb870c835
equal deleted inserted replaced
124:a7b769a0e537 125:85814c0918c5
852 comm->origin = m_lexer->describeCurrentPosition(); 852 comm->origin = m_lexer->describeCurrentPosition();
853 853
854 // Return value 854 // Return value
855 m_lexer->mustGetAnyOf ({TK_Int,TK_Void,TK_Bool,TK_Str}); 855 m_lexer->mustGetAnyOf ({TK_Int,TK_Void,TK_Bool,TK_Str});
856 comm->returnvalue = getTypeByName (m_lexer->token()->text); // TODO 856 comm->returnvalue = getTypeByName (m_lexer->token()->text); // TODO
857 assert (comm->returnvalue != -1); 857 ASSERT_NE (comm->returnvalue, -1);
858 858
859 // Number 859 // Number
860 m_lexer->mustGetNext (TK_Number); 860 m_lexer->mustGetNext (TK_Number);
861 comm->number = m_lexer->token()->text.toLong(); 861 comm->number = m_lexer->token()->text.toLong();
862 m_lexer->mustGetNext (TK_Colon); 862 m_lexer->mustGetNext (TK_Colon);
875 m_lexer->mustGetNext (TK_Comma); 875 m_lexer->mustGetNext (TK_Comma);
876 876
877 CommandArgument arg; 877 CommandArgument arg;
878 m_lexer->mustGetAnyOf ({TK_Int,TK_Bool,TK_Str}); 878 m_lexer->mustGetAnyOf ({TK_Int,TK_Bool,TK_Str});
879 DataType type = getTypeByName (m_lexer->token()->text); // TODO 879 DataType type = getTypeByName (m_lexer->token()->text); // TODO
880 assert (type != -1 && type != TYPE_Void); 880 ASSERT_NE (type, -1)
881 ASSERT_NE (type, TYPE_Void)
881 arg.type = type; 882 arg.type = type;
882 883
883 m_lexer->mustGetNext (TK_Symbol); 884 m_lexer->mustGetNext (TK_Symbol);
884 arg.name = m_lexer->token()->text; 885 arg.name = m_lexer->token()->text;
885 886
1064 case TK_DoublePlus: return ASSIGNOP_Increase; 1065 case TK_DoublePlus: return ASSIGNOP_Increase;
1065 case TK_DoubleMinus: return ASSIGNOP_Decrease; 1066 case TK_DoubleMinus: return ASSIGNOP_Decrease;
1066 default: break; 1067 default: break;
1067 } 1068 }
1068 1069
1069 assert (false); 1070 error ("WTF bad operator token %1", m_lexer->describeToken (m_lexer->token()));
1070 return (AssignmentOperator) 0; 1071 return (AssignmentOperator) 0;
1071 } 1072 }
1072 1073
1073 // ============================================================================ 1074 // ============================================================================
1074 // 1075 //

mercurial