Sociolinguistic Features and Communicative Functions of Code-Switching in Bilingual Discourse: Contrasting Structural and Functional Approaches | Synapse