Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

syntax error near unexpected token `('

Tags:

c

Below is my code, it keeps telling me that line 10 is causing this "syntax error near unexpected token `('" but I cannot figure out why. I am adding to a code that was already written but the part where it says there is an error is not part of what I added. So I'm very confused about why I'm getting this error. Also I would like a good definition of what this error actually means.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "applanix_data.h"
#include "applanix_pos_out.h"

#define DEGREES2RADIANS  (3.141592654 / 180.0)

int output_group_1(FILE *fp,     /* This is line 10 */
               FILE *fpout,
               unsigned short myyear,
               unsigned short mymonth,
               unsigned short myday,
               double time_sod,
               double double_time_met)
{
struct applanix_data_group1 data1;
struct pospacsbet sbet;

if(fread(&data1,sizeof(struct applanix_data_group1),1,fp)==1)
 {
    sbet.gpstime = time_sod;
    sbet.latitude = data1.latitude * DEGREES2RADIANS;
    sbet.longitude = data1.longitude * DEGREES2RADIANS;
    sbet.altitude = data1.altitude;
    sbet.x_velocity = data1.eVelocity;
    sbet.y_velocity = data1.nVelocity;
    sbet.z_velocity = data1.dVelocity;
    sbet.roll = data1.aircraftRoll * DEGREES2RADIANS;
    sbet.pitch = data1.aircraftPitch * DEGREES2RADIANS;
    sbet.platform_heading = data1.aircraftHeading * DEGREES2RADIANS;
    sbet.wander_angle = data1.aircraftWanderAngle * DEGREES2RADIANS;
    sbet.x_body_acceleration = data1.aircraftTransverseAcceleration;
    sbet.y_body_acceleration = data1.aircraftLongitudinalAcceleration;
    sbet.z_body_acceleration = data1.aircraftDownAcceleration;
    sbet.x_body_angular_rate = data1.aircraftAngularRateAboutDownAxis;
    sbet.y_body_angular_rate = data1.aircraftLongitudinalAcceleration;
    sbet.z_body_angular_rate = data1.aircraftAngularRateAboutDownAxis;

    if(fwrite(&sbet,sizeof(struct pospacsbet),1,fpout)!=1)
      {
         fprintf(stderr,"Error writing POSPAC SBET output!\n");
         exit(-2);
      }

    sbet.latitude1 = sbet.latitude * (180/3.141592654);
    sbet.longitude1 = sbet.longitude * (180/3.14592654);
    sbet.day = sbet.gpstime/86400;
    sbet.time = sbet.gpstime/86400;
    sbet.hour1 = (sbet.time - sbet.day);
    sbet.hour = sbet.hour1*24;
    sbet.time = sbet.hour1*24;
    sbet.minute1 = (sbet.time - sbet.hour);
    sbet.minute = sbet.minute1*60;
    sbet.time = sbet.minute1 * 60;
    sbet.second1 = (sbet.time - sbet.minute);
    sbet.second = sbet.second1*60;


    printf("%12.8f, %12.8f, %6.3f, %i:%i:%4.2f\n",sbet.longitude1,sbet.latitude1,sbet.altitude,sbet.hour, sbet.minute, sbet.second);
    return 0;
 }
 else
  return -1;
}

Editing the OP's comment into the question:

unix> g++ applanixraw2out.c
unix> ./applanixraw2out.c applanix_raw_20120508.bin > test.txt
./applanixraw2out.c: line 10: syntax error near unexpected token ('
like image 941
user2718341 Avatar asked Aug 26 '13 17:08

user2718341


People also ask

What Is syntax error near unexpected token?

The JavaScript exceptions "unexpected token" occur when a specific language construct was expected, but something else was provided. This might be a simple typo.

How do I fix an unexpected token?

As you write your JavaScript application, the unexpected token error always occurs because JavaScript expected a specific syntax that's not fulfilled by your current code. You can generally fix the error by removing or adding a specific JavaScript language symbol to your code.

What is #/ bin bash?

The shebang, #!/bin/bash when used in scripts is used to instruct the operating system to use bash as a command interpreter. Each of the systems has its own shells which the system will use to execute its own system scripts. This system shell can vary from OS to OS(most of the time it will be bash).


2 Answers

That's not a compiler syntax error, it's a shell error.

You're trying to execute your C source code directly. The system is assuming the file is a shell script.

You need to compile it to an executable, and then run the executable:

$ gcc applanixraw2out.c -o applanixraw2out
$ ./applanixraw2out [arguments]

In a comment, you said you did the following:

unix> g++ applanixraw2out.c
unix> ./applanixraw2out.c applanix_raw_20120508.bin > test.txt
./applanixraw2out.c: line 10: syntax error near unexpected token ('

The g++ command is for C++ code; your code is C, so you should use gcc instead.

You have to specify the name of the executable file, which is most commonly the source file name with .c removed. If you don't, both g++ and gcc produce an executable named a.out by default (for historical reasons). Use the -o option to override that default.

Also, in order to get that syntax error you must have done something like:

$ chmod +x applanixraw2out.c

Setting execute permission on files that aren't meant to be executed is mostly harmless, but should be avoided since it can make errors like this more difficult to track down.

like image 158
Keith Thompson Avatar answered Oct 11 '22 10:10

Keith Thompson


As starblue mentioned in his comment, check the code in the two included header files. The error message should tell you exactly where the error occurred. Look at the line or two before the line listed in the error and make sure the syntax is correct. This error is almost always caused by a missing ;, (, {, etc on a preceding line.

like image 31
Brian Kintz Avatar answered Oct 11 '22 12:10

Brian Kintz