error: expected unqualified-id before '{' token

Hi, im new to arduino and even newer to this forum.
I know I have made a lot of structural mistakes but once again, im a newbie.
the project im working on is a 3x3x3 ledcube. in this version of the code the whole cube should turn on for half a second and then turn of for half a second and repeat, however the cube will be able to show cool animations if i take the time to make them
the error im getting when I compile the code is: ledcube_v0_2:14: error: expected unqualified-id before '{' token

the code:

/*
update V 0.2
figured out how to display animations
lets see how it works out
*/

const int LAY[3] = {11, 12, 13};               //sets pins 11-13 as layers
const int COL[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};//sets pins 1-9 as collumns

boolean leds[27] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};//represents if the leds are on or off
int LEDno = 1; //used in above data to pick a LED

void actual_animate();//summary: write the pins high, go to next led
{//this is where the compiler starts complaining
    if (boolean leds[int LEDno] == 1);//if the led is on...
    {
      if (1 >=int LEDno >= 9){digitalWrite(LAY[1], HIGH);}//top layer
      if (10 >=int LEDno >= 18){digitalWrite(LAY[2], HIGH;)}//middle layer
      if (19 >=int LEDno >= 27){digitalWrite(LAY[3], HIGH;)}//bottom layer
      
      if (int LEDno == 1 || int LEDno == 10 || int LEDno == 19){digitalWrite(COL[1]);}//collumn 1
      if (int LEDno == 2 || int LEDno == 11 || int LEDno == 20){digitalWrite(COL[2]);}//collumn 2
      if (int LEDno == 3 || int LEDno == 12 || int LEDno == 21){digitalWrite(COL[3]);}//collumn 3
      if (int LEDno == 4 || int LEDno == 13 || int LEDno == 22){digitalWrite(COL[4]);}//collumn 4                       1  2  3
      if (int LEDno == 5 || int LEDno == 14 || int LEDno == 23){digitalWrite(COL[5]);}//collumn 5    layout goes like:  4  5  6
      if (int LEDno == 6 || int LEDno == 16 || int LEDno == 24){digitalWrite(COL[6]);}//collumn 6                       7  8  9
      if (int LEDno == 7 || int LEDno == 17 || int LEDno == 25){digitalWrite(COL[7]);}//collumn 7
      if (int LEDno == 8 || int LEDno == 18 || int LEDno == 26){digitalWrite(COL[8]);}//collumn 8
      if (int LEDno == 9 || int LEDno == 19 || int LEDno == 27){digitalWrite(COL[9]);}//collumn 9
    }
    LEDno++;//goes to the next LED
    unsigned int breaktime = millis;
    unsigned int elapsedtime = starttime - breaktime;
}

void frame(unsigned int duration, boolean leds[27]);
{
  unsigned int starttime = millis;//measures the starttime
  
  if(int LEDno =< 28){int LEDno = 1};//sets the LEDno back to one if LEDno is invalid
//if LEDno is valid just continue
  while(elapsedtime <= duration)
  {
   void actual_animate();
  }
}

void setup()
{
  pinMode(LAY[], OUTPUT);//sets all used pins as outputs
  pinMode(COL[], OUTPUT);
}

void loop()
{
  boolean leds[27] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  void frame(500, leds);
  boolean leds[27] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
  void frame(500, leds);
}

It would appear to me that you have one semicolon too many. Especially the one right after

void actual_animate();

Looks like that mistake may have been repeated.

A function should just look like

void functionName (void) 
{
    // code block
}

No semi colons between the () and {}

ETA I notice you call the functions improperly as well. You do not need the void part which is declaring the return type of the function.

// call as 
functionName();

// not 
void functionName();

Try it without this semicolon:
{//this is where the compiler starts complaining
if (boolean leds[int LEDno] == 1);//if the led is on...

as that negates the stuff in { } that follows.Take out all the "int"s also you're already declared LEDno as an int and don't need to continue doing so.

thanks for the help.
I've had little time to adjust the code so its still incomplete, anyway
the updated code:

/*
update V 0.2
figured out how to display animations
lets see how it works out
*/

const int LAY[3] = {11, 12, 13};               //sets pins 11-13 as layers
const int COL[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};//sets pins 1-9 as collumns

boolean leds[27] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};//represents if the leds are on or off
int LEDno = 1; //used in above data to pick a LED

void actual_animate()//summary: write the pins high, go to next led
{
    if (boolean leds[int LEDno] == 1)//if the led is on...
    {
      if (1 >= LEDno >= 9){digitalWrite(LAY[1], HIGH);}//top layer
      if (10 >= LEDno >= 18){digitalWrite(LAY[2], HIGH;)}//middle layer
      if (19 >= LEDno >= 27){digitalWrite(LAY[3], HIGH;)}//bottom layer
      
      if (LEDno == 1 || LEDno == 10 || LEDno == 19){digitalWrite(COL[1]);}//collumn 1
      if (LEDno == 2 || LEDno == 11 || LEDno == 20){digitalWrite(COL[2]);}//collumn 2
      if (LEDno == 3 || LEDno == 12 || LEDno == 21){digitalWrite(COL[3]);}//collumn 3
      if (LEDno == 4 || LEDno == 13 || LEDno == 22){digitalWrite(COL[4]);}//collumn 4                       1  2  3
      if (LEDno == 5 || LEDno == 14 || LEDno == 23){digitalWrite(COL[5]);}//collumn 5    layout goes like:  4  5  6
      if (LEDno == 6 || LEDno == 16 || LEDno == 24){digitalWrite(COL[6]);}//collumn 6                       7  8  9
      if (LEDno == 7 || LEDno == 17 || LEDno == 25){digitalWrite(COL[7]);}//collumn 7
      if (LEDno == 8 || LEDno == 18 || LEDno == 26){digitalWrite(COL[8]);}//collumn 8
      if (LEDno == 9 || LEDno == 19 || LEDno == 27){digitalWrite(COL[9]);}//collumn 9
    }
    LEDno++;//goes to the next LED
    unsigned int breaktime = millis;
    unsigned int elapsedtime = starttime - breaktime;
}

void frame(unsigned int duration, boolean leds[27])
{
  unsigned int starttime = millis;//measures the starttime
  
  if(int LEDno =< 28){int LEDno = 1};//sets the LEDno back to one if LEDno is invalid
//if LEDno is valid just continue
  while(elapsedtime <= duration)
  {
   actual_animate();
  }
}

void setup()
{
  pinMode(LAY[], OUTPUT);//sets all used pins as outputs
  pinMode(COL[], OUTPUT);
}

void loop()
{
  boolean leds[27] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  frame(500, leds);
  boolean leds[27] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
  frame(500, leds);
}

and the error list:

ledcube_v0_2.ino: In function 'void actual_animate()':
ledcube_v0_2:15: error: expected primary-expression before 'leds'
ledcube_v0_2:15: error: expected `)' before 'leds'
ledcube_v0_2:18: error: expected `)' before ';' token
ledcube_v0_2:18: error: expected primary-expression before ')' token
ledcube_v0_2:18: error: expected `;' before ')' token
ledcube_v0_2:19: error: expected `)' before ';' token
ledcube_v0_2:19: error: expected primary-expression before ')' token
ledcube_v0_2:19: error: expected `;' before ')' token
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:21: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:22: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:23: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:24: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:25: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:26: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:27: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:28: error: at this point in file
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h:99: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
ledcube_v0_2:29: error: at this point in file
ledcube_v0_2:32: error: invalid conversion from 'long unsigned int (*)()' to 'unsigned int'
ledcube_v0_2:33: error: 'starttime' was not declared in this scope
ledcube_v0_2.ino: In function 'void frame(unsigned int, boolean*)':
ledcube_v0_2:38: error: invalid conversion from 'long unsigned int (*)()' to 'unsigned int'
ledcube_v0_2:40: error: expected primary-expression before '<' token
ledcube_v0_2:40: error: expected ',' or ';' before '}' token
ledcube_v0_2:42: error: 'elapsedtime' was not declared in this scope
ledcube_v0_2.ino: In function 'void setup()':
ledcube_v0_2:50: error: expected primary-expression before ']' token
ledcube_v0_2:51: error: expected primary-expression before ']' token
ledcube_v0_2.ino: In function 'void loop()':
ledcube_v0_2:58: error: redeclaration of 'boolean leds [27]'
ledcube_v0_2:56: error: 'boolean leds [27]' previously declared here

im kinda in a hurry but once again, thanks for the help

if (boolean leds[int LEDno] == 1)//if the led is on...

You keep redeclaring variables. There's two in that statement alone. A variable only needs to declared once. When you have a type such as byte, int, unsigned long, followed by a variable name you have declared a variable. To refer to a variable after it's declared you only need its name.

I think you would benefit from an understanding of how the compiler defines variables in a program. See if this helps: