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 ('
The JavaScript exceptions "unexpected token" occur when a specific language construct was expected, but something else was provided. This might be a simple typo.
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.
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).
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With