A Harbour ismeri a Unicode jelkészletet. Azonosítót megnevezni csak bizonyos karakterekkel lehet, viszont a szövegkonstansok között már szabadon használhatók Unicode karakterek. A Harbour más xBase nyelvekhez hasonlóan nem kis-nagybetű érzékeny, és minden kulcsszava használható rövidített formában, csak az első négy betűt leírva. A szintaxisra mindig jellemző, hogy megtartja a kompatibilitást a Clipperrel.
Minden típushoz rendelhető változónév. Ez az azonosító legalább egy, legfeljebb 63 karakterből állhat. A változó nevében csak az angol ábécé betűi, aláhúzásjelek és számok fordulhatnak elő. Az első karakternek betűnek kell lennie. Nincs különbség a nagybetűk és kisbetűk között.
A szövegkonstansokat idézőjelek, aposztrófok vagy szögletes zárójelek közé kell tenni.
A szövegkonstansokban a közrefogó karaktert kivéve akármilyen Unicode karakter előfordulhat, vagy akár üres is lehet.
A string hossza tetszőleges, csak a memóriától függ.
Numerikus literálok a következőképpen írhatók: 1, 1.1, -1, 0xFF
.
Logikai igaz és hamis literál a .T.
és a .F.
jelsorozat.
Dátum literál például a 0d20110103
jelsorozat.
Nil literál a NIL
.
Egy tömb leírható úgy, hogy az elemeit egymástól vesszővel elválasztva kapcsoszárójelbe tesszük
(például a { "String"", 1, { "Nested Array" }, .T., FunctionCall(), @FunctionPointer() }
).
A nyelvben létezik kódblokk, erre egy példa: { |Arg1, ArgN| Arg1 := ArgN + OuterVar + FunctionCall() }
.
Hashre egy példa: { "Name" => "John", 1 => "Numeric key", { "Nested" => "Hash" } }
.
Kommentezni C++ nyelvhez hasonlóan lehet /*
és */
jelek között vagy //
jelekkel a sor végéig.