%{
#include <stdio.h>
#include <string.h>
#include "missionPlan.tab.h"

int _lineNo = 1;
int _starting = 0;

int mplanFileLineNo() {
  return _lineNo;
}

#undef yywrap

int yywrap() 
{
  int ret;
  if (_starting) {
    ret = 0;
    _starting = 0;
  }
  else
    ret = 1;

  return ret; 
}


void restartMissionPlanLexer()
{
  _lineNo = 1;
  _starting = 1;
}


%}

%x COMMENT


%%
"#".*             { }
"//".*            { }
"/*".*"*/"        { }

"/*"              { BEGIN COMMENT; }
<COMMENT>"*/"     { BEGIN INITIAL; }

<COMMENT>^.*      { }

<COMMENT>^[ \t]*\n { _lineNo++; }

[ \t\r]+          { ; /* Eat extra whitespace (including '\r') */ }
behavior          { return BehaviorTag; }
[a-zA-Z0-9_\.\-]* { yylval.string = strdup(yytext); return Word; }
\{                { return '{'; }
\}                { return '}'; }
=                 { return '='; }
\;                { return ';'; }
,                 { return ','; }
\n                { _lineNo++; }
.                 { return yytext[0]; }
%%


